有没有办法查看准备好的查询,因为它将在数据库上执行?

pil*_*eks 5 php mysql mysqli

可能重复:
PDO准备的声明

我在PHP中使用mysqli扩展,我想知道,有没有办法看到准备好的查询,因为它将在服务器上执行,例如查询是这样的

select * from table1 where id = ? and name = ?
Run Code Online (Sandbox Code Playgroud)

但我希望在填写值后查看查询,如下所示:

select * from table1 where id = 20 and name = "John"
Run Code Online (Sandbox Code Playgroud)

Dre*_*erx 7

打开mysql查询日志记录,它会将所有查询记录到文本文件中供您查看.


tro*_*skn 2

PDO 准备好的报表的副本

简短的回答:不。准备好的查询永远不会转换为您期望的查询。它由数据库服务器直接执行。您可以使用mysql的查询日志或PDO的未记录函数debugDumpParams,但这两者都只是近似值。

  • 实际上,如果您启用 MySQL 查询日志记录,它*确实*会记录一个准备好的查询,并将参数值插入其中。古怪! (2认同)