从PDO准备好的语句中获取查询

Chr*_*isR 48 php mysql pdo

有没有办法检索用于生成PDO Prepared语句对象的查询?

Ark*_*rkh 30

试试$ statement-> queryString.

  • 无用的答案. (57认同)
  • 每当我使用它时,它仍然将params显示为占位符.反正有没有设置参数设置的字符串?数据库得到它的方式? (45认同)
  • 对于那些寻找带有值的查询字符串的人,请参阅http://stackoverflow.com/q/210564/457836,了解为什么它不能正常工作的解释,以及自己获取它的功能. (4认同)
  • 为什么这么多的赞成票和被接受的anser?正如JD Isaaca所说,它将params显示为占位符.见http://php.net/manual/de/pdostatement.debugdumpparams.php (4认同)
  • 您必须检查数据库日志.对于MySQL,请查看此页面:http://dev.mysql.com/doc/refman/5.0/en/query-log.html (3认同)

Had*_*san 14

实现您想要的最简单方法是:

$statement->debugDumpParams();
Run Code Online (Sandbox Code Playgroud)

只要确保在执行语句后添加它。


Noa*_*eck 10

如果您不反对扩展默认的\ PDO和\ PDOStatement对象,您可以考虑查看:

github.com/noahheck/E_PDOStatement

PDO的这个扩展允许您查看完整的查询语句,作为可能在数据库级别执行的内容的示例.它使用正则表达式来插入PDO语句的绑定参数.

通过扩展默认\ PDOStatement定义,E_PDOStatement能够将此增强功能提供给默认功能,而无需修改您的正常工作流程.

免责声明:我创建了此扩展程序.

我希望它对其他人有帮助.