クエリの生成された文字列を表示する方法を探していますが、withoutそれを実行しています。
クエリは以前に実行されていないことに注意してください。 ($this->db->last_query();
は必要ありません)
$this->db->echo_query_string($table_name = '');
のような名前のメソッドが使用されることを願っていますまったく同じように$this->db->get($table_name = '');
しかし、唯一の違いはget()
はコードを実行しますが、echo_query_string()
はクエリの文字列をエコーするだけです実行なし。
これらの関数のいずれかでコンパイルされたクエリを見ることができます
/* SELECT */ $this->db->_compile_select();
/* INSERT */ $this->db->_insert();
/* UPDATE */ $this->db->_update();
Codeigniterでファイルを変更する必要はありません。変更するためのメソッドが既に提供されているためです。
を使用して
echo $this->db->last_query();
生産します
select * from some_table...
そしてこれがそれです。
DB_active_rec.phpにこの小さなメソッドを追加しました
function return_query()
{
return $this->_compile_select();
}
使用法
$this->db->select('id,user_name')->from('user')->where('id',1);
$string = $this->db->return_query();
echo $string;
結果
SELECT `id`, `user_name` FROM (`user`) WHERE `id` = 1
このようにして、使用することにバインドされています
$this->db->from()
の代わりに
$this->db->get()
クエリを実行する
いくつかのpublicメソッドを使用してSQLクエリを取得できます
$sql = $this->db->get_compiled_select()
$sql = $this->db->get_compiled_insert()
$sql = $this->db->get_compiled_update()
$sql = $this->db->get_compiled_delete()