2014-02-06 234 views
1

PHP手冊(http://www.php.net/manual/en/pdostatement.execute.php)在Return Values處提到:「成功返回TRUE或失敗時返回FALSE。」如何處理PHP PDO execute()返回false?

我正在寫幾個PDO :: execute語句的php腳本。 PHP:PDO確實會返回FALSE時應該做什麼?停止整個腳本(調用exit())或者繼續或其他操作? Execute()返回false的可能原因是什麼?或者只是返回錯誤只是一個非常理論的情景,幾乎從來沒有發生在卷軸上?

+0

如果您嘗試進行數據庫模式不允許的更改,由於像唯一值,外鍵,重複條目等約束,它可能會返回false。 – jgroenen

回答

1

這實際上取決於您執行的是哪種查詢。如果它是交易的一部分,則可能需要回滾它。 如果後續程序執行至關重要,那麼您肯定會想要停止它並顯示錯誤消息。 如果你的程序沒有它,你可以忽略它或以任何你認爲正確的方式處理。

當出現錯誤時它返回false。這可能是由於缺乏連接,不正確的參數等造成的。

+0

thnx。我相信我讀過某處(我不是sql專家),在MySQL中使用COMMIT和ROLLBACK(?)有一些限制,但我必須再次查看。我從你的回答中得出結論,無論如何推薦實施錯誤管理...... – Joppo

+0

有不同的存儲引擎,他們可能會以不同的方式處理事務。我並不是這方面的專家,但是我自己並沒有在mysql中遇到任何交易問題。錯誤管理肯定是一個很好的方法。然而,實施它的最佳方式仍然取決於誰和將如何使用它。 – Shocked

2

這取決於您的程序的查詢執行的重要性。 沒有處理/忽略它的標準方法。

它可能會幫助您使用PDO的功能,因此您可以通過不同的方式處理不同的錯誤。

看看在errorCode()手冊頁,其中一個​​未能給出的第一個例子。