4

私は codeigniter 2.0++ または具体的には 3.0-dev を使用しています。問題は、複数のデータベース接続があり、プロファイラーはデフォルト接続からのクエリのみを表示することです$this->db

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

2 に答える 2

4

この質問を参照してください。これは、はるかに単純なソリューションです。 モデルにデータベースをロードするときに、Codeigniter Profiler でデータベース クエリを表示するにはどうすればよいですか?

データベースをメインの CI クラスに保存するだけで、プロファイラーがそれらにアクセスできるようになります。

function __construct()
{

    parent::__construct();

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

}
于 2012-07-11T16:20:43.757 に答える
1

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

この記事は私が問題を解決するのに役立ちました:

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

于 2012-05-07T02:01:28.650 に答える