这个问题已经在这里有了答案 :
从PDO准备好的语句中获取原始SQL查询字符串 (16个答案)
3年前关闭。
在PHP中,当使用带有参数化查询的PDO访问MySQL数据库时,如何检查最终查询(在替换了所有令牌之后)?
有没有办法检查数据库真正执行了什么?
因此,我想我将最终回答我自己的问题,以便为记录提供完整的解决方案。但是必须感谢本·詹姆斯和凯拉什·巴杜,他们为此提供了线索。
简短回答 正如本·詹姆斯所说: 不 。 完整的SQL查询在PHP端不存在,因为令牌查询和参数分别发送到数据库。仅在数据库方面,存在完整查询。
即使试图在PHP端创建一个用于替换令牌的函数,也不能保证替换过程与SQL相同(如令牌类型,bindValue与bindParam等复杂的东西,…)
解决方法 这是我详细介绍Kailash Badu的答案的地方。通过记录所有SQL查询,我们可以看到服务器上实际运行的内容。使用mySQL,可以通过更新my.cnf(或Wamp服务器中的my.ini)并添加如下一行来完成:
log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]
只是不要在生产中运行它!!!