【问题标题】:Debugging PDO - Why Is a Query Returning No Rows?调试 PDO - 为什么查询不返回行?
【发布时间】:2014-05-23 02:39:24
【问题描述】:

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


我奖励VMai 的答案,因为他给了我一些很好的调试技巧。我发现在我的情况下,问题是由于使用了bindParam() in a foreach loop。创建一个代码 sn-p 唯一的区别是 foreach 循环是让我朝那个方向研究的原因。我不需要the functionality that bindParam affords,所以切换到bindValue 修复了这个错误。

【问题讨论】:

  • 显示一些代码将是一个好的开始。从字面上看,它不起作用的原因有无数个。显示一些代码将有助于将无穷大确定为更易于管理的东西。
  • 有几层抽象,所以显示相关代码sn-p是有问题的。我希望有更通用的调试技巧。

标签: php mysql pdo


【解决方案1】:

您可以使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 2017-10-28
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    相关资源
    最近更新 更多