CodeIgniter中有什么方法可以从查询中删除dbprefix?

时间:2018-10-28 05:00:57

标签: php codeigniter

我正在构建CI应用程序,我需要使用2个不同的数据库(mysql和mssql)。当我尝试对mssql DB运行简单查询时,CI会将dbprefix添加到表名称中,因此最终会出错。如何防止CI添加前缀?在database.php文件中没有设置dbprefix

查询模型

    public function getAccName($uid) 

{
            $this->load->database('mssqlsrv',TRUE);

           return $this->db->where("uid", $uid)
    ->select("account")->get("user_account");                  
}

2 个答案:

答案 0 :(得分:0)

要正确回答此问题:

在Codeigniter中使用多个数据库连接时,需要将每个连接分配给一个变量,例如:

$DB1 = $this->load->database('mssqlsrv', TRUE);
$DB2 = $this->load->database('group_two', TRUE);

然后您可以使用

进行查询
$DB1->where("uid", $uid)->select("account")->get("user_account");

代替

$this->db->where("uid", $uid)->select("account")->get("user_account");

有关更多信息,请参见https://www.codeigniter.com/userguide3/database/connecting.html

答案 1 :(得分:0)

如何尝试将每个数据库连接设置为某个变量:

类似于以下代码:

$mysqlConn = $this->load->database('mysql', TRUE);
$mssqlConn = $this->load->database('mssqlsrv', TRUE);

然后尝试使用它们进行查询,因为上面的代码应该是:

public function getAccName($uid) 

{
   $mssqlConn = $this->load->database('mssqlsrv', TRUE);

    return $mssqlConn->where("uid", $uid)
    ->select("account")->get("user_account");                  
}