我正在使用Zend 1.11和Doctrine 1.1.4。我的应用程序使用多个数据库。
在我的bootstrap.php文件中,我已经设置了两个数据库的详细信息;
$dbs = array(
'global_users'=>array(
'adapter' => 'mysqli',
'params' => array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'global_users',
'charset' => 'UTF8',
),
),
'search_landscape'=>array(
'adapter' => 'mysqli',
'params' => array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'search_landscape',
'charset' => 'UTF8',
),
),
);
我为第二个数据库search_landscape生成了Doctrine Model类。我还没有在应用程序中使用global_users数据库,而我在第二个数据库上执行了几个Doctrine查询,search_landscape到目前为止正在按预期工作。
在执行Doctrine查询时,我没有定义与数据库的显式连接,即使用默认连接,Doctrine如何知道要连接哪个数据库?
当我开始使用应用程序中的其他数据库时,我明白我必须明确定义每个数据库的Doctrine连接,但是现在我还没有定义任何显式连接,Doctrine似乎知道要连接哪个数据库从这两个中脱颖而出。
感谢帮助。
答案 0 :(得分:0)
Doctrine_Manager::getInstance()->getCurrentConnection();
Doctrine_Manager是singleton object,您可以使用其名称将其他连接设置为默认值。有关详细信息,请参阅Doctrine_Manager API documentation。