Zend MultiDB соединение не удается - PullRequest
1 голос
/ 23 марта 2012

Привет, я пытаюсь соединить две базы данных в моем приложении Zend Framework.

Ниже приведены мои настройки в файле local.ini.

resources.multidb.core.adapter = "pdo_mysql"
resources.multidb.core.params.host = "hostname"
resources.multidb.core.params.username = "root"
resources.multidb.core.params.password = "pwd"
resources.multidb.core.params.dbname = "coredb"
resources.multidb.core.isDefaultTableAdapter = true

resources.multidb.app.adapter = "pdo_mysql"
resources.multidb.app.params.host = "hostname"
resources.multidb.app.params.username = "roor"
resources.multidb.app.params.password = "iamroot123"
resources.multidb.app.params.dbname = "appdb"
resources.multidb.app.isDefaultTableAdapter = false

А мой код в bootstarp выглядит следующим образом.

public function _initDbRegistry()
{
    $this->bootstrap('multidb');
    $resource = $this->getPluginResource('multidb');
    Zend_Registry::set('dbCore', $resource->getDb('core'));
    Zend_Registry::set('dbOlap', $resource->getDb('app'));
}

Но когда я пытаюсь получить доступ к своему приложению, я получаю следующую ошибку.

Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'Configuration array must have a key for 'dbname' that names the database instance' in C:\xampp\zend\library\Zend\Db\Adapter\Abstract.php:287 Stack trace: #0 C:\xampp\zend\library\Zend\Db\Adapter\Abstract.php(183): Zend_Db_Adapter_Abstract->_checkRequiredOptions(Array) #1 C:\xampp\zend\library\Zend\Db.php(270): Zend_Db_Adapter_Abstract->__construct(Array) #2 C:\xampp\zend\library\Zend\Application\Resource\Multidb.php(99): Zend_Db::factory('pdo_mysql', Array) #3 C:\xampp\zend\library\Zend\Application\Bootstrap\BootstrapAbstract.php(683): Zend_Application_Resource_Multidb->init() #4 C:\xampp\zend\library\Zend\Application\Bootstrap\BootstrapAbstract.php(626): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('multidb') #5 C:\xampp\zend\library\Zend\Application\Bootstrap\BootstrapAbstract.php(586): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL) #6 C:\xampp\zend\library\Zend\Application.php(355): Zend_Application_Bootstrap_Boo in C:\xampp\zend\library\Zend\Db\Adapter\Abstract.php on line 287

Я не могу понять, что происходит не так. Кто-нибудь может мне помочь? Также, пожалуйста, дайте мне знать, как мне использовать объекты БД в моем классе моделей.

Большое спасибо.

1 Ответ

4 голосов
/ 23 марта 2012

просмотр документации Пример базы данных # 14 Возможно, ваш application.ini неверен, попробуйте это (удалить: параметры):

resources.multidb.core.adapter = "pdo_mysql"
resources.multidb.core.host = "hostname"
resources.multidb.core.username = "root"
resources.multidb.core.password = "pwd"
resources.multidb.core.dbname = "coredb"
resources.multidb.core.isDefaultTableAdapter = true

resources.multidb.app.adapter = "pdo_mysql"
resources.multidb.app.host = "hostname"
resources.multidb.app.username = "roor"
resources.multidb.app.password = "iamroot123"
resources.multidb.app.dbname = "appdb"
resources.multidb.app.isDefaultTableAdapter = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...