php - 配列 - codeigniter サブクエリ
codeigniterモデルでのSQL文の出力方法 (8)
_compiled_select()
またはget_compiled_select()
を使用すると成功しなかった後、 db
オブジェクトが表示されただけで、 queries
プロパティにqueries
プロパティが表示されます。
自分で試してみてください:
var_dump( $this->db );
クエリが1つしかないことがわかっている場合は、直接印刷することができます。
echo $this->db->queries[0];
私のモデルにはSQL文がありますが、
私は次に言う
$query = $this->db->query($sql, array(fields, fields1);
if ($query) {
return true:
} else {
echo "failed";
return false;
}
私のクエリはいつも失敗します、私はデータベースに送られている正確なSQL文を出力するためにPHPをどのように取得しますか? そしてそれを私のPHPビューのページに表示する
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 '; ?>
できます!