在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]
只是不要在生产中运行它!!!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句