Подтвердить что ты не робот

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

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

Обратите внимание, что запрос ранее не выполнялся. (Я не хочу $this->db->last_query();)

Я надеюсь, что существует метод с именем типа $this->db->echo_query_string($table_name = '');, который будет использоваться точно как $this->db->get($table_name = ''); , НО ТОЛЬКО РАЗНИЦА БУДЕТ, ЧТО get() выполняет код, но echo_query_string() просто перекликается с строкой запроса без выполнения.

4b9b3361

Ответ 1

Вы можете просмотреть скомпилированный запрос с помощью любой из этих функций

/* SELECT */ $this->db->_compile_select();
/* INSERT */ $this->db->_insert();
/* UPDATE */ $this->db->_update();

Ответ 2

Вам не нужно изменять какой-либо файл в codeigniter, поскольку он уже предоставляет метод для этого.

Использование

echo $this->db->last_query();

создаст

select * from some_table...

И это он.

Ответ 3

Я добавил этот маленький метод в 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()

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