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

Получение необработанных SQL-запросов в CodeIgniter 1.7

Я пытаюсь отладить некоторый код в моем первом серьезном приложении CodeIgniter, и я не могу найти, где я могу просто получить исходный SQL, который только что сгенерировал код ActiveRecord.

    $where  = 'DAY(`datetime_start`) = '. date('d',$day) .' AND ';
    $where .= 'MONTH(`datetime_start`) = '. date('m',$day) .'';

    $this->db->from('events')->where($where);
    $result = $this->db->get();

Спасибо за помощь!

4b9b3361

Ответ 1

Перед запуском запроса:

$this->db->_compile_select(); 

И после его запуска:

$this->db->last_query();

Ответ 2

Конечно, я нашел его через 2 минуты после публикации, любезно предоставлен Phil Sturgeon.

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

Ответ 3

Кроме того, вы можете поместить в контроллер следующее:

$this->output->enable_profiler(TRUE);

Вы получите запросы и многое другое.

Ответ 4

Для тех, кто находит этот старый пост и задается вопросом, что это в последней версии v3, функция $this- > db- > get_compiled_select().

Ответ 5

Вы можете сделать что-то вроде этого, пока не будет выпущена следующая версия CI

private function get_query_string()
{
    return  'SELECT ' . 
            implode( ' , ' , $this->db->ar_select ) .
            ' FROM ' .
            implode( ' , '  , $this->db->ar_from ) .
            ( count( $this->db->ar_where ) ? ' WHERE ' : '' ) .
            implode( ' ' , $this->db->ar_where );
}