【问题标题】:Problem executing SQL query in Zend?在 Zend 中执行 SQL 查询时出现问题?
【发布时间】:2023-03-03 22:55:02
【问题描述】:

我在 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 设置修复我的代码?

谢谢

【问题讨论】:

标签: php database zend-framework


【解决方案1】:

要检索默认数据库适配器,请使用以下代码:

$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
$resource = $bootstrap->getPluginResource('multidb');
$db = $resource->getDb();

【讨论】:

    【解决方案2】:

    以下代码适用于我在 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();
    

    【讨论】:

      猜你喜欢
      • 2022-11-29
      • 2013-12-05
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 2014-10-31
      • 2016-11-11
      • 1970-01-01
      • 2011-03-28
      相关资源
      最近更新 更多