Intereting Posts
Только в Firefox "Ошибка загрузки для <script> с исходным кодом" PHP – Проблемы с удалением «\ r \ n \ r \ n» из этой строки: «Я хотел бы: \ r \ n \ r \ n1.) Сбросить этот беспорядок \ r \ n \ r \ n \ 2.) Теперь Пожалуйста" отображение изображения, сохраненного в блоке mysql Может ли GD сделать текст искаженным (чтобы он выглядел так, будто он слегка обтекает кривую)? urlencode только каталог и имена файлов URL-адреса Почему хелперы Form и HTML устарели в Laravel 5.x Могу ли я использовать URL-адрес в качестве источника для imagecreatefromjpeg () без включения оберток fopen? Использование AND / OR в if else заявление PHP Случайное генерирование цвета с использованием PHP Получение количества IPv6-адресов из Ipv6 CIDR в PHP PHP, который лучше всего подходит для хранения данных в сеансе и базе данных? Объединение баз данных WordPress PDO-версия mysql_num_rows ($ result) == 0) Преимущества Secury PHP PDO vs mysql _ * () как сохранить профиль пользователя pic в facebook с помощью php

Как распечатать инструкцию SQL в модели codeigniter

У меня есть инструкция sql в моей модели,

Я тогда говорю

$query = $this->db->query($sql, array(fields, fields1); if ($query) { return true: } else { echo "failed"; return false; } 

Мой запрос всегда терпит неудачу, как мне получить php для печати точного оператора sql, отправляемого в мою базу данных? И покажите, что на моем php-представлении, страница

Related of "Как распечатать инструкцию SQL в модели codeigniter"

 print_r($query); 

Вы также можете использовать (в представлении), и вы увидите инструкцию SQL:

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

Профилирование руководства пользователя: http://ellislab.com/codeigniter/user-guide/general/profiling.html

Вы можете использовать это:

 $this->db->last_query(); 

«Возвращает последний запрошенный запрос (строка запроса, а не результат)».

Reff: https://www.codeigniter.com/userguide3/database/helpers.html

Вы можете отобразить созданный ActiveRecord SQL:

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

 $this->db->_compile_select(); 

И после того, как он запустил:

 $this->db->last_query(); 

если вам нужен быстрый тест по вашему запросу, это отлично работает для меня

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

После попытки без успеха использовать _compiled_select() или get_compiled_select() я просто напечатал объект db , и вы можете увидеть запрос там в свойстве queries .

Попробуй сам:

 var_dump( $this->db ); 

Если вы знаете, что у вас есть только один запрос, вы можете распечатать его напрямую:

 echo $this->db->queries[0]; 

Вы можете просто использовать это в конце.

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

Существует новый открытый метод get_compiled_select который может распечатать запрос перед его запуском. _compile_select теперь защищен, поэтому его нельзя использовать.

 echo $this->db->get_compiled_select(); // before $this->db->get(); 

Ни last_query() ни get_compiled_select() работают для меня, поэтому небольшое изменение кода Pedro для меня очень хорошо работает. Не включайте ->get() в свою сборку, это должно быть до -> get ()

  echo $this->EE->db->_compile_select(); 

Я пытаюсь ответить @ Chumillas и ответ @ chhameed, но он не работает, потому что sql ошибочен. Поэтому я нашел новый подход, например:

  • Вставить echo $sql; flush(); exit; echo $sql; flush(); exit; перед return $sql; _compile_select функция DB_active_rec.php

Я читал все ответы здесь, но не могу получить

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

работать, Это дало мне ошибку,

Вызовите защищенный метод CI_DB_active_record :: _ compile_select () из контекста 'Welcome'in-контроллеры в строке xx

Таким образом, я удалил protected из ниже строки файл \system\database\DB_active_rec.php и он работал

 protected function _compile_select($select_override = FALSE) 

У меня была точно такая же проблема, и я нашел решение в конце концов. Мой запрос выполняется так:

 $result = mysqli_query($link,'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC '); 

Чтобы отобразить команду sql, все, что мне нужно было сделать, это создать переменную ($ resultstring) с тем же содержимым, что и мой запрос, а затем повторить его, например: <?php echo $resultstring = 'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC '; ?> <?php echo $resultstring = 'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC '; ?>

Оно работает!