cozy/database

一系列数据库工具。

v0.1.4 2018-11-21 06:31 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:34:29 UTC


README

PHP Version Software License Build Status Scrutinizer Code Quality Code Coverage Total Downloads

PHP 7.1+的数据库工具包,封装PDO实例以简化并提高其功能,同时允许良好的安全实践并提供可表达性查询构建器。此库也是Cozy PHP框架的组件。

安装

通过Composer

$ composer require cozy/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);

关系数据库连接池

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

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

测试

$ composer test

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件info@nestorpicado.com而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件