Ответ 1
Выполнение запроса выполняется во всех методах get, таких как
$this->db->get('table_name');
$this->db->get_where('table_name',$array);
В то время как last_query содержит последний запрос, который был запущен
$this->db->last_query();
Если вы хотите получить строку запроса без выполнения, вам придется это сделать. Перейти к системе /database/DB _active_rec.php Удалить из этих функций общедоступное или защищенное ключевое слово
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();
Теперь запрос reset, поэтому, если вы хотите написать другой запрос, объект будет очищен.
$this->db->_reset_select();
И дело сделано. Ура!!! Примечание. При использовании этого способа вы должны использовать
$this->db->from('myTable')
вместо
$this->db->get('myTable')
который выполняет запрос.