我正在使用PDO :: prepare()來準備INSERT語句。 PDO :: execute()返回true,$ dbh-> lastInsertId()總是有下一個id,但實際上並沒有插入行!當沒有插入發生時,PDO :: execute如何返回true?
這可能是什麼原因造成的?
我正在使用PDO :: prepare()來準備INSERT語句。 PDO :: execute()返回true,$ dbh-> lastInsertId()總是有下一個id,但實際上並沒有插入行!當沒有插入發生時,PDO :: execute如何返回true?
這可能是什麼原因造成的?
如果$dbh->lastInsertId()
從該非常插入返回id(即,沒有其他插入被觸發),該行顯然被插入。只需仔細檢查您的表格。我是認真的。
我要在這裏刺暗,並且下注之後你沒有運行$dbh->commit()
。沒有提交,腳本結束或連接關閉後,它將回滾更改。
我想也許是這種情況,因爲第二刀片具有取決於第一次插入成功的一個外鍵約束。我在第一次插入後添加了一個'$ dbh-> commit()',它確實顯示正確,但第二次插入仍然會引發外鍵約束錯誤。任何想法爲什麼? – 2013-02-21 07:39:39
@AlienBishop在這種情況下,您需要提供更多詳細信息。 – 2013-02-21 07:44:19