Возможный дубликат:
Подготовленные заявления 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;
Вывод генерирует все переменные, назначенные запросу.
Надеюсь, я вас точно понял, чего вы хотели.