我正在使用这样的zend执行sql查询,它正在工作:
$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 设置来修复我的代码?
由于
答案 0 :(得分:1)
要检索默认数据库适配器,请使用以下代码:
$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$resource = $bootstrap->getPluginResource('multidb');
$db = $resource->getDb();
答案 1 :(得分:0)
以下代码适用于我在 application.ini
中的multidb配置$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$resource = $bootstrap->getPluginResource('multidb');
$db = $resource->getDb();
$statement = $db->query("SELECT * from tablename");
$results = $statement->fetchAll();