phalcon 连接多个数据库 phalcon multi-database

原创
2015/05/20 10:28
阅读数 641

http://stackoverflow.com/questions/22197678/how-to-connect-multiple-database-in-phalcon-framework


//This service returns a MySQL database
$di->set('dbMaster', function() {
     return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => "localhost",
        "username" => "",
        "password" => "",
        "dbname" => ""
    ));
});

//This service returns a PostgreSQL database
$di->set('dbSlave', function() {
     return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => "localhost",
        "username" => "",
        "password" => "",
        "dbname" => ""
    ));
});


public function initialize()
{
    $this->setConnectionService('dbMaster');
    //or
    $this->setConnectionService('dbSlave');
}


这是给出来的案例,在实际代码环境,用的是默认生成的模板文件。


修改配置文件

    'database' => array(
        'adapter'     => 'Mysql',
        'host'        => '127.0.0.1',
        'username'    => 'root',
        'password'    => 'toor',
        'dbname'      => 'db1',
        'charset'     => 'utf8',
    ),
    'db2' => array(
        'adapter'     => 'Mysql',
        'host'        => '127.0.0.1',
        'username'    => 'root',
        'password'    => 'toor',
        'dbname'      => 'db2',
        'charset'     => 'utf8',
    ),


$di->set('db', function () use ($config) {
    return new DbAdapter($config->database->toArray());
});
$di->set('db2', function () use ($config) {
    return new DbAdapter($config->db2->toArray());


在model中使用时,

class user  extends Model
{
    public function initialize()
    {
        $this->setConnectionService('db2');
    }
}





展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部