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

StackOverflow https://stackoverflow.com/questions/305179

  •  08-07-2019
  •  | 
  •  

Вопрос

  

Возможный дубликат:
   Подготовленные отчеты 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;

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top