【问题标题】:referring wrong db while using multiple db connections in codeigniter在codeigniter中使用多个数据库连接时引用错误的数据库
【发布时间】:2013-08-16 01:36:43
【问题描述】:

我在 Codeigniter 控制器_contruct 中串联加载了两个不同的数据库。虽然我调用第二个数据库,但它工作正常,但第一个加载的数据库指的是第二个加载的数据库。

function __construct(){
  parent::__construct();  

 $this->liveDB = $this->load->database('liveDB', TRUE);
 $this->metricsDB = $this->load->database('metricsDB', TRUE);
}

我的行动

$this->metricsDB->query("") // working good

$this->liveDB->query("") // referring database metricsDB

注意:如果我在 __construct 中更改顺序,它会相反

【问题讨论】:

  • 您是否将数据库设置为自动加载,如果是这样,当您关闭自动加载数据库时会发生什么情况?
  • @allen213:我尝试从自动加载中删除“数据库”。还是一样
  • 您是否在 database.php 配置文件中为每个配置项放置了正确的配置项?
  • 我想他有,正如他所说:“如果我改变 __construct 中的顺序,它就会相反”。
  • 您是否尝试过这里的任何建议:stackoverflow.com/questions/634291/…

标签: codeigniter


【解决方案1】:

这可能是持久连接造成的,设置

$db['livDB']['pconnect'] = FALSE;
$db['metricsDB']['pconnect'] = FALSE;

在你的数据库配置中看看是否有帮助

【讨论】:

    【解决方案2】:

    看看CI User guide:

    如果您需要同时连接多个数据库,您可以这样做:

    $liveDB = $this->load->database('liveDB', TRUE);
    $metricsDB = $this->load->database('metricsDB', TRUE);
    

    那么你可以使用:

    $metricsDB->query();
    $metricsDB->result();
    

    【讨论】:

    • 确保数据库未设置为autoload -> application/config/autoload.php。正如@allen213 提到的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多