2012-04-18 14 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

1

私も同様の問題がありました。ローカルのmysqlデータベースを使用していて、リモートのOracleデータベースにもアクセスしていました。 Oracleクエリーがプロファイラに表示されませんでした。

この記事では、問題を解決するために私を助け:

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

+0

CodeIgniterの新しいバージョンのためにこれを修正ポストの更新バージョンである:あなたがラッキーならhttp://www.gotphp.com/codeigniter-profiler-extended/54358/ –

関連する問題