CodeIgniter Active Record: отладка без запуска SQL

Я новичок в Code Igniter и использую Active Record для всех запросов в новом проекте.

Есть ли способ вывести оператор SQL без его фактического запуска.

Функция, которую я создал, содержит довольно много операторов, выбирает, удаляет и обновляет, и я хочу убедиться, что они верны, прежде чем запускать их в тестовой среде, поскольку у них есть много «если» и вокруг них нужно создать запросы.

Короче говоря, я просто хочу, чтобы он повторял оператор, но не запускал его.

Заранее спасибо! :)


person David 'davethegeek' Dingvean    schedule 01.08.2012    source источник
comment
Предполагая, что вы поместили запрос в переменную, просто: echo $myquery;   -  person Brian    schedule 01.08.2012
comment
читайте здесь: stackoverflow.com/questions/5113675/   -  person Yan Berk    schedule 01.08.2012
comment
поэтому, если я использую 'echo $this-›db-›last_query();' он отобразит запрос, но не запустит его?   -  person David 'davethegeek' Dingvean    schedule 01.08.2012
comment
Конечно, если $this-›db-›updat('table' $data) уже отправлено, оно запустится?   -  person David 'davethegeek' Dingvean    schedule 01.08.2012
comment
В качестве дополнительного примечания: включение профилировщика очень поможет вам отладить ваши запросы MySQL, параметры конфигурации, данные публикации, получения и сеанса на каждой странице. Его можно включить, добавив $this->output->enable_profiler(true); в функцию __construct вашего контроллера.   -  person Abdulaziz    schedule 02.08.2012


Ответы (2)


Взгляните на методы insert_string() и update_string(), перечисленные в разделе Помощник по запросам к базе данных пользователя. руководство.

Для выбора вам нужно будет запустить $this->db->last_query() после того, как вы запустите команду, но SELECT не является деструктивным, так что кого это волнует.

person Phil Sturgeon    schedule 01.08.2012
comment
точно, операторы select меня устраивают, это запросы на обновление и удаление, которых я опасаюсь, я хочу иметь возможность отображать их без запуска. посмотрю раздел помощи. Благодарность - person David 'davethegeek' Dingvean; 01.08.2012
comment
Строку вставки/обновления удобно выводить, но она не работает с запросом, созданным в активной записи. - person David 'davethegeek' Dingvean; 01.08.2012
comment
Это, безусловно, должно быть сделано. Как вы его используете? - person Phil Sturgeon; 01.08.2012

Взгляните на этот мой ответ.
Как я могу переписать этот SQL в Active Records CodeIgniter?

В этом случае, если вы используете $this->db->_compile_select(), а затем повторяете его, он отобразит запрос без запуска.

person Muhammad Raheel    schedule 02.08.2012