Я пытаюсь подключиться к нескольким базам данных с Zend Framework. Когда я подключаюсь, используя те же учетные данные с mysql_connect, он работает просто отлично. Когда я соединяюсь с Zend, я получаю
"Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access
denied for user 'xxxx'@'localhost' (using password: YES)' in C:\wamp\www\zend\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144"
Я следовал учебнику на http://www.amazium.com/blog/using-different-databases-with-zend-framework
Вот мое application.ini:
resources.multidb.db1.adapter = "PDO_MYSQL"
resources.multidb.db1.dbname = "xxxxx"
resources.multidb.db1.username = "xxxxxx"
resources.multidb.db1.password = "xxxxxx"
resources.multidb.db1.hostname = "localhost"
resources.multidb.db1.charset = "UTF8"
resources.multidb.db1.default = true
resources.multidb.db3.adapter = "PDO_MYSQL"
resources.multidb.db3.dbname = "xxxxxx"
resources.multidb.db3.username = "xxxxxx"
resources.multidb.db3.password = "xxxxxx"
resources.multidb.db3.hostname = "xxxxx"
resources.multidb.db3.charset = "UTF8"
resources.multidb.db3.default = false
Вот мой Bootstrap.php:
/**
* Add databases to the registry
*/
public function _initDbRegistry()
{
$this->bootstrap('multidb');
$multidb = $this->getPluginResource('multidb');
Zend_Registry::set('local', $multidb->getDb('db1'));
Zend_Registry::set('db2', $multidb->getDb('db2'));
Zend_Registry::set('db3', $multidb->getDb('db3'));
}
Вот моя модель:
class ModuleName_Model_ModelName extends Zend_Db_Table_Abstract
{
protected $_name;
protected $_schema;
protected $_db; // changed from $_adapter in tutorial for Zend 1.11
public function init()
{
$this->_name = 'contacts';
$this->_schema = 'xxxxx';
$this->_db = Zend_Registry::get('db3');
}
}
Вот где я звоню в моем контроллере:
$model = new ModuleName_Model_ModelName();
$this->view->output= $model->fetchAll();
Я подключился через phpmyadmin, mysql workbench и использовал простой старый mysql_connect, скопировав и вставив те же имя пользователя и пароль. Нет сомнений в правильности имени пользователя и пароля. Кто-нибудь знает, что я могу делать неправильно в Zend, который выдает ошибку «Отказано в доступе»?
Хорошо, спасибо - я попробовал ваше предложение, Midhun:
Zend_Debug::dump($model->getAdapter()->getConfig());
и я получил правильный вывод.
Есть еще идеи?