Ответ 1
Вы можете просмотреть скомпилированный запрос с помощью любой из этих функций
/* SELECT */ $this->db->_compile_select();
/* INSERT */ $this->db->_insert();
/* UPDATE */ $this->db->_update();
Я ищу способ увидеть сгенерированную строку запроса, но без, выполнив ее.
Обратите внимание, что запрос ранее не выполнялся. (Я не хочу $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()
Выполняет запрос