Есть ли способ увидеть подготовленный запрос, поскольку он будет выполнен в базе данных?

Возможный дубликат:
Подготовленные заявления PDO

Я использую расширение mysqli в PHP, и мне интересно, возможно ли каким-либо образом увидеть подготовленный запрос, поскольку он будет выполнен на сервере, например, запрос выглядит примерно так:

select * from table1 where id = ? and name = ? 

но я хочу увидеть запрос после заполнения значений, например:

 select * from table1 where id = 20 and name = "John" 

Дублирование подготовленных заявлений PDO

Короткий ответ: нет. Готовый запрос никогда не будет преобразован в ожидаемый запрос. Он выполняется непосредственно сервером базы данных. Вы можете использовать журнал запросов mysql или недокументированную функцию PDO debugDumpParams , но оба они просто приближаются.

Включите ведение журнала запросов mysql, и он будет записывать все запросы в текстовый файл для просмотра.

Посмотрите, где? Если это ваш код, у вас есть запрос, и у вас есть подготовленные параметры, запишите их отдельно или замените в исходной строке запроса. Если привязка не удастся, вы получите сообщение об ошибке, иначе вы должны ожидать, что те же значения будут «заполнены», как вы их указали.

Его путь в большинстве случаев я отлаживаю запросы mysql:

$ q = "select * from table1, где id =". $ id. "и name =". $ name; echo $ q;

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

Надеюсь, я вас точно понял, чего вы хотели.