A database library built on top of aura/sql and aura/sqlquery that provides driver configuration, lazy connection management, a fluent query builder, and a clean execution layer.
composer require georgeff/databaseuse Georgeff\Database\Connection\MySqlDriver;
use Georgeff\Database\Connection\ConnectionManager;
use Georgeff\Database\DatabaseManager;
$driver = MySqlDriver::fromArray([
'hosts' => ['write' => 'db.example.com'],
'database' => 'myapp',
'username' => 'root',
'password' => 'secret',
]);
$db = new DatabaseManager(new ConnectionManager($driver));
// Fetch a single row
$user = $db->fetchOne(
$db->select()->from('users')->where('id', 1)
);
// Fetch all rows
$users = $db->fetchAll(
$db->select(['id', 'name'])->from('users')->where('active', 1)->orderBy('name', 'ASC')
);
// Fetch key-value pairs (first column as key, second as value)
$nameById = $db->fetchPairs(
$db->select(['id', 'name'])->from('users')->where('active', 1)
);
// Count matching rows
$total = $db->count(
$db->select()->from('users')->where('active', 1)
);
// Insert a row and retrieve the generated ID
$db->fetchAffected(
$db->insert()->into('users')->column('name', 'Alice')->column('email', 'alice@example.com')
);
$id = $db->lastInsertId();
// Update rows
$db->fetchAffected(
$db->update()->table('users')->column('active', 0)->where('last_login', '2020-01-01', '<')
);
// Delete rows
$db->fetchAffected(
$db->delete()->from('users')->where('active', 0)
);
// Transaction
$db->transaction(function () use ($db) {
$db->fetchAffected($db->update()->table('accounts')->column('balance', 500)->where('id', 1));
$db->fetchAffected($db->update()->table('accounts')->column('balance', 1500)->where('id', 2));
});- Drivers — Configuring SQLite, MySQL, and PostgreSQL connections
- Connection Manager — Lazy connections, read replicas, and sticky writes
- Query Builder — Building SELECT, INSERT, UPDATE, and DELETE queries
- Transactions — Wrapping operations in database transactions
- Executor — Executing queries and fetching results
- Database Manager — The unified entry point
MIT. See LICENSE.