调试PDO-为什么查询不返回行


Debugging PDO - Why Is a Query Returning No Rows?

我有一个查询,我正在用具有绑定变量的PDO执行。如果我回显语句的queryString值并自己替换绑定变量,然后执行查询,我会得到返回的行。我希望有人能给我一些关于调试这个问题的建议。


我将授予VMai的答案,因为他给了我一些很好的调试技巧。我发现,在我的情况下,问题是由于在foreach循环中使用bindParam()造成的。创建一个代码片段,其中唯一的区别是foreach循环,这让我朝着这个方向进行研究。我不需要bindParam提供的功能,所以切换到bindValue修复了这个错误。

您可以使用PDOStatement::debugDumpParams来获取有关准备好的语句的信息,请参阅http://www.php.net/manual/en/pdostatement.debugdumpparams.php

否则,您可以在my.cnf中启用MySQL服务器的常规查询日志。http://dev.mysql.com/doc/refman/5.5/en/query-log.html