【问题标题】:How Doctrine determines default database connection?Doctrine 如何确定默认数据库连接?
【发布时间】:2011-08-28 22:57:09
【问题描述】:

我正在使用 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 数据库,而我已经在第二个数据库 search_landscape 上执行了几个 Doctrine 查询,到目前为止它正在按预期工作。

在执行 Doctrine 查询时,我没有定义到数据库的显式连接,即它使用默认连接,Doctrine 如何知道要连接到哪个数据库?

当我开始在应用程序中使用其他数据库时,我知道我必须为每个数据库显式定义 Doctrine 连接,但是现在我还没有定义任何显式连接,但 Doctrine 似乎知道要连接哪个数据库两者兼而有之。

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:
    Doctrine_Manager::getInstance()->getCurrentConnection();
    

    Doctrine_Manager 是singleton object,您可以使用它们的名称将其他连接设置为默认值。请参阅Doctrine_Manager API documentation 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 2013-09-29
      相关资源
      最近更新 更多