Php Zend Framework : Connecting to multiple databases one at a time

流过昼夜 提交于 2019-12-06 07:32:43

See Zend_Application_Resource_Multidb:

application.ini

[production]
resources.multidb.db1.adapter = "pdo_mysql"
resources.multidb.db1.host = "localhost"
resources.multidb.db1.username = "webuser"
resources.multidb.db1.password = "XXXX"
resources.multidb.db1.dbname = "db1"

resources.multidb.db2.adapter = "pdo_pgsql"
resources.multidb.db2.host = "example.com"
resources.multidb.db2.username = "dba"
resources.multidb.db2.password = "notthatpublic"
resources.multidb.db2.dbname = "db2"
resources.multidb.db2.default = true

index.php

$resource = $bootstrap->getPluginResource('multidb');
$db1 = $resource->getDb('db1');
$db2 = $resource->getDb('db2');
$defaultDb = $resource->getDb();

For anybody who hasn't got a solution, all you have to do is this:

  1. application.ini -> Define your databases here

    resources.multidb.db.adapter = SQLSRV

    resources.multidb.db.host = localhost

    resources.multidb.db.username = root

    resources.multidb.db.password =

    resources.multidb.db.dbname =

    resources.multidb.db.isDefaultTableAdapter = true

    resources.multidb.db2.adapter = SQLSRV

    resources.multidb.db2.host = localhost

    resources.multidb.db2.username = root

    resources.multidb.db2.password =

    resources.multidb.db2.dbname =

    resources.multidb.db2.isDefaultTableAdapter = false

  2. controller or model where connection to 2nd DB needs to be set up

    $db2Ob = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('multidb')->getDb('db2');

  3. Now use this $db2Ob to execute queries:

    $select = $db2Ob->select()->from(array('db2tbl' => 'table in 2nd DB'),array('column name'))->where(condition);

Hope this helps someone.

Regards,

Supriya Rajgopal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!