Проблема выполнения SQL-запроса в Zend? - PullRequest
1 голос
/ 31 мая 2011

Я выполнял SQL-запрос в Zend что-то вроде этого, и оно работало:

$front = Zend_Controller_Front::getInstance();
$bootstrap = $front->getParam('bootstrap');
$resource = $bootstrap->getPluginResource('db');
$dbAdapter = $resource->getDbAdapter();
$statement = $dbAdapter->query("SELECT * from tablename");
$results = $statement->fetchAll();

В то время мой application.ini был примерно таким:

resources.db.adapter = "Mysqli"
resources.db.params.host = "localhost"
resources.db.params.username = "username"
resources.db.params.password = "password"
resources.db.params.dbname = "dbname"

Вопрос:

Теперь я изменил свой application.ini на:

resources.multidb.local.adapter = "Mysqli"
resources.multidb.local.host = "localhost"
resources.multidb.local.username = "username"
resources.multidb.local.password = "passwod"
resources.multidb.local.dbname = "dbname"
resources.multidb.local.default = true

Теперь выше Zend-код выдает следующую ошибку:

Fatal error: Call to a member function getDbAdapter() on a non-object in Mapper.php  on line 297

Как исправить мой код в соответствии с новыми application.ini настройками?

Спасибо

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Чтобы получить адаптер базы данных по умолчанию, используйте следующий код:

$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$resource = $bootstrap->getPluginResource('multidb');
$db = $resource->getDb();
0 голосов
/ 31 мая 2011

Следующий код работает для меня с конфигурацией multidb в application.ini

$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$resource = $bootstrap->getPluginResource('multidb');
$db = $resource->getDb();
$statement = $db->query("SELECT * from tablename");
$results = $statement->fetchAll();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...