从 PDO 准备语句获取原始 SQL 查询
开发人员经常遇到需要调试通过 PDO 准备语句执行的 SQL 查询的情况。虽然准备好的语句提供了各种好处,但获取在执行期间执行的原始 SQL 字符串的访问权限是非常宝贵的。
PDO 可以提供原始 SQL 查询吗?
不幸的是,PDO不直接提供对准备好的语句中使用的原始 SQL 查询字符串的访问。准备好的语句在数据库服务器内执行,并单独发送参数。因此,PDO 无法访问参数插值后的最终查询字符串。
替代方法
要获取用于调试目的的原始 SQL 查询,必须采用替代方法:
注意:
PDOStatement 对象的 $queryString 属性虽然在构造期间最初设置,但不会更新具有插值参数。将重写的查询作为 PDO 的功能改进公开是有益的,但它并不能解决真正准备好的查询的限制。
结论
获取原始 SQL 查询从 PDO 准备好的语句中获取字符串并不是一个简单的过程。替代方法(例如 MySQL 通用查询日志或模拟准备语句)为调试目的提供了解决方法。虽然对此功能的需求仍然是一个有效的请求,但必须考虑准备好的语句机制所施加的限制。
以上是如何检索 PDO 准备语句执行的精确 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!