PDO Prepared Statement不是UPDATE表

时间:2010-06-28 14:40:29

标签: php mysql pdo

我正在开发一个基于PDO的ORM,用于没有唯一ID字段的表,因此当我更新或删除时,我需要与记录的先前值进行比较,并LIMIT 1。< / p>

当我的查询最终到达数据库并使用参数执行时,一切都是正确的,正如一般查询日志所确认的那样,没有发生任何事情

我没有抛出任何异常(PDO::ERRMODE_EXCEPTION已开启),并且检查$stmt->errorInfo()恢复干净,但$stmt->rowCount()返回0

作为一个完整性检查,我打开了日志文件,将UPDATE查询复制并粘贴到Sequel Pro(一个OSX MySQL GUI)并执行,一切都按预期工作,更新了一行。

为什么PDO在手动执行 IDENTICAL 查询时不会更新行?

1 个答案:

答案 0 :(得分:2)

问题是我的代码使用

生成了一个查询
WHERE `FieldName` = NULL

应该是什么时候

WHERE `FieldName` IS NULL

当由PDO执行时,它保留= NULL,导致没有匹配的记录,但是当MySQL记录它时,它记录了IS NULL,所以当我复制/粘贴时,查询是正确的,更新了这一行。