Есть ли способ увидеть подготовленный запрос, как он будет выполнен в базе данных? [Дубликат]
Вопрос
Возможный дубликат:
Подготовленные отчеты 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 = " выберите * из таблицы 1, где id = ". $ id. " и имя = ". $ name; echo $ q;
Выходные данные генерируют все переменные, назначенные запросу.
Надеюсь, я вас точно понял, что вы хотели.