Skip to content

Repository files navigation

Semperton

Semperton Database

A compact PDO / SQLite wrapper library.


Installation

Just use Composer:

composer require semperton/database

Database requires PHP 7.4+

Connection

The PDOConnection class is a PDO wrapper. Its constructor accepts the same parameters as the PDO constructor.

useSemperton\Database\Connection\PDOConnection;
$connection = newPDOConnection('dsn', null, null, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);

The internal PDO object is lazily created, when you make the first database call. You can pass a callable as the 5th argument to the PDOConnection constructor that gets called, when PDO first initializes.

Interface

interface ConnectionInterface
{
publicfunctionexecute(string$sql, ?array$params = null): bool;
publicfunctionfetchRow(string$sql, ?array$params = null): ?array;
publicfunctionfetchColumn(string$sql, ?array$params = null, int$column = 0): Generator;
publicfunctionfetchAll(string$sql, ?array$params = null): Generator;
publicfunctionfetchResult(string$sql, ?array$params = null): ResultSetInterface;
publicfunctionfetchValue(string$sql, ?array$params = null);
publicfunctioninTransaction(): bool;
publicfunctionbeginTransaction(): bool;
publicfunctioncommit(): bool;
publicfunctionrollBack(): bool;
publicfunctionlastInsertId(): int;
publicfunctionaffectedRows(): int;
}

ResultSet

The ResultSet class is a wrapper around PDOStatement::execute and PDOStatement::fetch calls. It's an Iterator with additional first(), count() and toArray() methods.

$users = $connection->fetchAll('select * from user limit :limit', ['limit' => 5]);
$firstUser = $users->first();
foreach($usersas$user){
// ...
}
$userCount = $users->count();
$userArray = $users->toArray();

About

A compact PDO / SQLite wrapper library.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages