gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:44:52 27 4
gpt4 key购买 nike

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

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

最佳答案

所以我想我最终会回答我自己的问题,以便为记录提供完整的解决方案。但必须感谢 Ben James 和 Kailash Badu 提供了线索。

简答
正如 Ben James 所说:
PHP端不存在完整的SQL查询,因为query-with-tokens和参数是分开发送到数据库的。只有在数据库端才存在完整的查询。

即使尝试在 PHP 端创建一个替换标记的函数也不能保证替换过程与 SQL 相同(棘手的东西,如标记类型、bindValue 与 bindParam,...)

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

log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]

只是不要在生产环境中运行它!!!

关于php - 在带有 PDO 的 PHP 中,如何检查最终的 SQL 参数化查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1786322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com