Skip to content

MikeGeorgeff/database

Repository files navigation

georgeff/database

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.

Installation

composer require georgeff/database

Quick Start

use 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));
});

Documentation

  • 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

License

MIT. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors