代码之家  ›  专栏  ›  技术社区  ›  Austin Hyde

PDO Prepared语句不更新表

  •  0
  • Austin Hyde  · 技术社区  · 15 年前

    我正在开发一个基于PDO的ORM,用于没有唯一ID字段的表,所以当我更新或删除时,我需要与记录的先前值进行比较,然后 LIMIT 1 .

    但是,当我的查询最终到达数据库并使用参数执行时,一切都是正确的,正如常规查询日志所确认的, .

    我没有被抛出异常( PDO::ERRMODE_EXCEPTION 已打开),正在检查 $stmt->errorInfo() 回来的时候很干净,但是 $stmt->rowCount() 退货 0

    作为健全性检查,我打开日志文件,复制并粘贴更新查询到Sequel Pro(一个OSX MySQL GUI)中并执行,所有操作都按预期工作,更新了1行。

    当手动执行 查询是什么?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Austin Hyde    15 年前

    问题是我的代码使用

    WHERE `FieldName` = NULL
    

    WHERE `FieldName` IS NULL
    

    当PDO执行时,它保持 = NULL ,导致没有匹配的记录,但当MySQL记录它时,它会记录 IS NULL ,因此当我复制/粘贴时,查询是正确的并更新了行。

    推荐文章