Эхо-запрос перед исполнением и без выполнения в кодеригенере Активная запись

Я ищу способ увидеть сгенерированную строку запроса, но не выполнив его.

Обратите внимание, что запрос ранее не выполнялся. (Я не хочу $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() 

Выполняется запрос