php - 配列 - codeigniter サブクエリ




codeigniterモデルでのSQL文の出力方法 (8)

私のモデルにはSQL文がありますが、

私は次に言う

$query = $this->db->query($sql, array(fields, fields1);

if ($query) {
    return true:
} else {
    echo "failed";
    return false;
}

私のクエリはいつも失敗します、私はデータベースに送られている正確なSQL文を出力するためにPHPをどのように取得しますか? そしてそれを私のPHPビューのページに表示する


_compiled_select()またはget_compiled_select()を使用すると成功しなかった後、 dbオブジェクトが表示されただけで、 queriesプロパティにqueriesプロパティが表示されます。

自分で試してみてください:

var_dump( $this->db );

クエリが1つしかないことがわかっている場合は、直接印刷することができます。

echo $this->db->queries[0];

last_query()またはget_compiled_select()は私のためにget_compiled_select()ないので、 get_compiled_select()のコードのわずかな変更は私のためにget_compiled_select()ます。 あなたのビルドに->get()含めないでください。これは->get()前でなければなりません。

 echo $this->EE->db->_compile_select();

あなたは最後にこれを使うことができます。

echo $this->db->last_query();

あなたは生成されたActiveRecordを表示することができます:

クエリを実行する前に:

$this->db->_compile_select(); 

それが実行された後:

$this->db->last_query(); 

クエリを実行する前に印刷できる新しいパブリックメソッドget_compiled_selectがあります。 _compile_selectは保護されているため、使用できません。

echo $this->db->get_compiled_select(); // before $this->db->get();

クエリを置換する代わりに取得するには、 get_compiled_select()を使用します


私はここですべての答えを読んだが、得ることができない

echo $this->db->get_compiled_select();

仕事には、それは私のようなエラーを与えた、

保護されたメソッドへの呼び出しラインxxのコントローラ 'Welcome'のコンテキストからCI_DB_active_record :: _ compile_select()

だから私はファイル\system\database\DB_active_rec.phpから下の行からprotectedを削除し、それが働いた

protected function _compile_select($select_override = FALSE)

私はまったく同じ問題を抱えていて、最終的に解決策を見つけました。 私の質問は次のようになります:

$result = mysqli_query($link,'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC ');

sqlコマンドを表示するには、自分のクエリとまったく同じ内容の変数($ resultstring)を作成して、次のようにエコーします: <?php echo $resultstring = 'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC '; ?> <?php echo $resultstring = 'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC '; ?>

できます!





codeigniter