开发者社区> 问答> 正文

在带有PDO的PHP中,如何检查最终的SQL参数化查询?mysql

在PHP中,当使用带有参数化查询的PDO访问MySQL数据库时,如何检查最终查询(在替换了所有令牌之后)?

有没有办法检查数据库真正执行了什么?

展开
收起
保持可爱mmm 2020-05-17 11:53:13 697 0
1 条回答
写回答
取消 提交回答
  • 因此,我想我将最终回答我自己的问题,以便为记录提供完整的解决方案。但是必须感谢本·詹姆斯和凯拉什·巴杜,他们为此提供了线索。

    简短回答 正如本·詹姆斯所说:不。 完整的SQL查询在PHP端不存在,因为令牌查询和参数分别发送到数据库。仅在数据库方面,存在完整查询。

    即使试图在PHP端创建一个用于替换令牌的函数,也不能保证替换过程与SQL相同(如令牌类型,bindValue与bindParam等复杂的东西,...)

    解决方法 这是我详细介绍Kailash Badu的答案的地方。通过记录所有SQL查询,我们可以看到服务器上实际运行的内容。使用mySQL,可以通过更新my.cnf(或Wamp服务器中的my.ini)并添加如下一行来完成:

    log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME] 只是不要在生产中运行它!!!来源:stack overflow

    2020-05-17 12:11:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载

相关镜像