[英]PDO Prepared Statement does not UPDATE table
我正在開發基於PDO的ORM,用於沒有唯一ID字段的表,因此在更新或刪除時,我需要與記錄的先前值和LIMIT 1
。
當我的查詢最終到達數據庫並使用參數執行時,一切都正確了,正如一般查詢日志所確認的那樣,但是什么也沒有發生 。
我沒有拋出任何異常( PDO::ERRMODE_EXCEPTION
打開狀態),並且檢查$stmt->errorInfo()
返回干凈,但$stmt->rowCount()
返回0
。
作為健全性檢查,我打開了日志文件,將UPDATE查詢復制並粘貼到Sequel Pro(OSX MySQL GUI)中,然后執行,一切按預期進行,更新了1行。
手動執行IDENTICAL查詢時,PDO為什么不更新行?
問題是我的代碼使用生成了查詢
WHERE `FieldName` = NULL
什么時候應該
WHERE `FieldName` IS NULL
當由PDO執行時,它保持= NULL
,導致沒有記錄匹配,但是當MySQL記錄它時,它記錄為IS NULL
,因此當我復制/粘貼時,查詢是正確的並更新了該行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.