Zend Framework:Multidb无法初始化

时间:2011-10-28 02:13:44

标签: apache zend-framework zend-db

这曾经起作用,但经过其他程序员的一些修改后,它就无法工作了。我的Bootstrap上有这个代码:

    protected function _initDatabase ()
{
    $resource = $this->getPluginResource('multidb');
    $resource->init();

    Zend_Registry::set('gtap', $resource->getDb('gtap'));
    Zend_Registry::set('phpbb', $resource->getDb('phpbb'));
}

加载后,会出现此错误:

  

致命错误:在非对象中调用成员函数init()   第105行的/var/www/gamebowl3/application/Bootstrap.php

我的php.ini在tis include_path上有这个条目:

   .:/usr/share/php:/etc/apache2/libraries

我可以看到multidb.php位于:

/etc/apache2/librarties/Zend/Application/Resource

有人可以告诉我导致错误的原因吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我刚发现问题出在application.ini中。在通常的配置集中添加了新引入的设置。这是:

;Gtap Database
resources.multidb.gtap.adapter      = "PDO_MYSQL"
resources.multidb.gtap.host         = "localhost"
resources.multidb.gtap.username     = "root"
resources.multidb.gtap.password     = "letmein1"
resources.multidb.gtap.dbname       = "gtap"
resources.multidb.gtap.isDefaultTableAdapter = true
resources.multidb.gtap.default = true
;Forum Database
resources.multidb.phpbb.adapter     = "PDO_MYSQL"
resources.multidb.phpbb.host        = "localhost"
resources.multidb.phpbb.username    = "root"
resources.multidb.phpbb.password    = "letmein1"
resources.multidb.phpbb.dbname      = "phpbb"
resources.multidb.phpbb.isDefaultTableAdapter = false

此外,请确保您拥有最新的Zend Framework Library并将其添加到PHP的包含路径中。这应该可以解决所有问题。