twinkle/database

基于PDO的数据库扩展,支持主从、懒连接

v0.1.1 2019-01-23 06:52 UTC

This package is auto-updated.

Last update: 2024-04-23 19:00:32 UTC


README

支持所有原生PDO功能,并作了相应的扩展。

1.支持懒连接
2.提供 Connection 管理主从
3.提供简单的 Query builder

Build Status

单实例

$db = new \Twinkle\Database\DB([
    "dsn" => "mysql:host=127.0.0.1;port=3306;dbname=db_demo",
    "username" => 'test',
    "password" => 'test_pass'
]);
$info = $db->execQuery(
    (new \Twinkle\Database\Query())->select('user_id,email')
        ->from('user_info')
        ->where('user_id = ?',1992)
        ->limit(1)
)->fetchInto();

主从实例

$master = function () {
    return new \Twinkle\Database\DB([
        "dsn" => "mysql:host=master.test.db;port=3306;dbname=db_demo",
        "username" => 'master_user',
        "password" => 'master_pass'
    ]);
};

$slave1 = function () {
    return new \Twinkle\Database\DB([
        "dsn" => "mysql:host=slave1.test.db;port=3306;dbname=db_demo",
        "username" => 'slave1_test',
        "password" => 'slave1_pass'
    ]);
};

$slave2 = function () {
    return new \Twinkle\Database\DB([
        "dsn" => "mysql:host=slave2.test.db;port=3306;dbname=db_demo",
        "username" => 'slave2_test',
        "password" => 'slave2_pass'
    ]);
};

$connection = new \Twinkle\Database\Connection();
$connection->setWrite($master);
$connection->setRead('slave1',$slave1);
$connection->setRead('slave2',$slave2);

$info = $connection->getRead()->execQuery(
    (new \Twinkle\Database\Query())->select('user_id,email')
        ->from('user_info')
        ->where('user_id = ?',1992)
        ->limit(1)
)->fetchInto();