2012-04-18 75 views
4

我正在使用codeigniter 2.0 ++或特定的3.0-dev。事情是我有多个数据库连接,并且分析器只显示来自默认连接$this->db的查询。具有多个数据库连接的Codeigniter查询分析器

class table_m extends CI_Model 
{ 

    function __construct() 
    { 
     parent :: __construct(); 
     $this->db2 = $this->load->database('production', TRUE); 
    } 

    function sel_pameran($ukmper=NULL) 
    { 
     $sql = "SELECT * from table1"; 

     $query = $this->db2->query($sql); 
     return $query->result(); 
    } 
} 

此查询将不会显示在探查器中,因为它使用$this->db2。那么如何让剖析器显示每个执行的查询,哪个数据库无关紧要?

回答

4

看到这个问题。这是一个更简单的解决方案How can I display my database queries in the Codeigniter Profiler when I load my databases in my models?

只需将您的数据库存储到主CI配置文件并且分析器将能够访问它们。

function __construct() 
{ 

    parent::__construct(); 

    $CI =& get_instance(); 
    if(is_null($CI->Companies_db)) 
     $CI->Companies_db =& $this->load->database('companies', TRUE, TRUE);   

} 
+0

如果你运气好,没有进一步调整,这将工作完美无瑕。它是2.X兼容的。 – AeroCross 2012-09-09 01:24:28

1

我有类似的问题。我使用的是本地mysql数据库,并且还访问了远程Oracle数据库。 Oracle查询没有显示在分析器中。

这篇文章帮我解决这个问题:

http://www.gotphp.com/codeigniter-multiple-database-support/5468/

+0

这里是修复此为笨的较新版本后的更新版本:http://www.gotphp.com/codeigniter-profiler-extended/54358/ – 2012-07-10 21:53:43