PHPackages                             tnapf/pdo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. tnapf/pdo

AbandonedArchivedLibrary

tnapf/pdo
=========

A PDO driver with additional features

v1.0.1(3y ago)018MITPHP

Since Feb 12Pushed 3y agoCompare

[ Source](https://github.com/tnapf/Pdo)[ Packagist](https://packagist.org/packages/tnapf/pdo)[ RSS](/packages/tnapf-pdo/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)DependenciesVersions (3)Used By (0)

Tnapf/Pdo
=========

[](#tnapfpdo)

Making PDO easier with the power of magic

Installation
------------

[](#installation)

`composer require tnapf/pdo`

Creating a connection
=====================

[](#creating-a-connection)

Doing so manually
-----------------

[](#doing-so-manually)

```
$driver = (new Driver)
	->withUsername("root")
	->withPassword("password")
	->withDatabase("database")
	->withHost("127.0.0.1")
	->withPort(3306)
	->withPrefix(Driver::PREFIX_MYSQL)
	->connect()
;
```

*You can use Driver::setDsnProp or Driver::with{insert dsn prop name here} to set additional dsn values*

Using the database predefined createDriver method
-------------------------------------------------

[](#using-the-database-predefined-createdriver-method)

*I currently only have mysql, postgres, and SQLite specific methods*

```
$driver = Driver::createMySqlDriver("root", "password", "database")->connect();
$driver = Driver::createPostgresSqlDriver("root", "password", "database")->connect();
$driver = Driver::createSQLiteDriver("/path/to/db.sqlite")->connect();

// you can set the host and port in the last two parameters but they default to localhost and the default port of the service
```

Executing a query
=================

[](#executing-a-query)

```
$rows = $driver->query("SELECT * FROM table")->fetchAll(PDO::FETCH_ASSOC);
```

The driver will store the PDOStatement internally and detect if the method you're invoking exists in PDOStatement or PDO and invoke it on one of the instances accordingly. *Thankfully there are no method names that are the same between the two classes*

Preparing a statement
=====================

[](#preparing-a-statement)

```
$driver->prepare("SELECT * FROM table WHERE column = :column");
$driver->bindValue("column", "value");
$driver->execute();
$rows = $driver->fetchAll(PDO::FETCH_ASSOC);
```

Singleton Constructor Argument
==============================

[](#singleton-constructor-argument)

If you construct a Driver with the singleton argument as `true` then that new instance will be stored as a static property in the class that can be called from anywhere with the `get` method. You can additionally call PDO/PDOStatement methods statically from Driver and it will work similar to `$driver->methodName`

```
(new Driver(true))
	->withUsername("root")
	->withPassword("password")
	->withDatabase("database")
	->withHost("127.0.0.1")
	->connect()
;

function getRowWhereIdIs(int $id, int $fetch_type = PDO::FETCH_ASSOC): mixed
{
	Driver::prepare("SELECT * FROM table WHERE id = :id");
	Driver::bindValue("id", $id);
	Driver::execute();
	return Driver::fetch($fetch_type);
}

$row = getRowWhereIdIs(20);
```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

1191d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c1dc8515485fa64088fdfa03dd0f487d507dc1516824c31be2626a6ee25244dd?d=identicon)[command\_string](/maintainers/command_string)

---

Top Contributors

[![CommandString](https://avatars.githubusercontent.com/u/44886996?v=4)](https://github.com/CommandString "CommandString (3 commits)")[![xHeaven](https://avatars.githubusercontent.com/u/14284867?v=4)](https://github.com/xHeaven "xHeaven (1 commits)")

### Embed Badge

![Health badge](/badges/tnapf-pdo/health.svg)

```
[![Health](https://phpackages.com/badges/tnapf-pdo/health.svg)](https://phpackages.com/packages/tnapf-pdo)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
