クエリの実行は、次のcodeigniterアクティブレコードステートメントのget_where()
句で発生しますか?
$this->db->select('*');
$q = $this->db->get_where('Contacts', array('id' => $contact_id));
$sql = $this->db->last_query();
または、result_array()
を呼び出すと発生しますか?
また、$this->db->last_query();
は、クエリ文字列を取得する信頼できる方法です。
クエリの実行は、次のようなすべてのgetメソッドで発生します。
$this->db->get('table_name');
$this->db->get_where('table_name',$array);
Last_queryには実行された最後のクエリが含まれています
$this->db->last_query();
実行せずにクエリ文字列を取得するには、これを行う必要があります。 system/database/DB_active_rec.phpに移動しますこれらの関数からpublicまたはprotectedキーワードを削除します
public function _compile_select($select_override = FALSE)
public function _reset_select()
これで、クエリを作成して変数で取得できます
$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();
ここでクエリをリセットして、別のクエリを書きたい場合はオブジェクトをクリアします。
$this->db->_reset_select();
そして、事は終わりました。乾杯!!!注:この方法を使用する場合は、使用する必要があります
$this->db->from('myTable')
の代わりに
$this->db->get('myTable')
クエリを実行します。