Doctrine如何确定默认数据库连接?

时间:2011-05-19 14:37:20

标签: php zend-framework doctrine database-connection doctrine-query

我正在使用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似乎知道要连接哪个数据库从这两个中脱颖而出。

感谢帮助。

1 个答案:

答案 0 :(得分:0)

Doctrine_Manager::getInstance()->getCurrentConnection();

Doctrine_Manager是singleton object,您可以使用其名称将其他连接设置为默认值。有关详细信息,请参阅Doctrine_Manager API documentation