Database toolkit for PHP 7.1+ that encapsulates a PDO instance to simplify and improve its functionality, in addition to allowing good security practices and providing an expressive query builder. This library is also a component of the Cozy PHP Framework.
Via Composer
$ composer require cozy/database
Single connection to a relational database:
use \Cozy\Database\Relational\Connection;
$db = new Connection('mysql:host=localhost;port=3306;dbname=test', 'user', 'password');
$account = $db
->prepare('SELECT * FROM schema.accounts WHERE id = :id')
->bindValue(':id', '6b70a1f7-2a41-4da3-9fdb-f8b60273dec1', 'string')
->fetchAsObject(Account::class);
Pool of connections to relational databases:
use \Cozy\Database\Relational\ConnectionPool;
use \Cozy\Database\Relational\Connection;
$db_pool = new ConnectionPool(ConnectionPool::SELECTION_RANDOM);
foreach ($settings['database']['master'] as $database_info) {
$db_pool->addConnection(Connection::fromArray($database_info), 'master');
}
foreach ($settings['database']['slave'] as $database_info) {
$db_pool->addConnection(Connection::fromArray($database_info), 'slave');
}
$account = $db_pool->getConnection('slave')
->prepare('SELECT * FROM schema.accounts WHERE id = :id')
->bindValue(':id', '6b70a1f7-2a41-4da3-9fdb-f8b60273dec1', 'string')
->fetchAsObject(Account::class);
Please see CHANGELOG for more information on what has changed recently.
$ composer test
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email info@nestorpicado.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.