在之前的文章中給大家?guī)砹恕禤HP數(shù)據(jù)庫學習之怎樣使用PDO獲取查詢結果?》,其中詳細的介紹了怎樣使用PDO獲取查詢結果的相關知識,本篇我們一起來看一下PHP中怎樣進行PDO的錯誤處理,希望對大家有幫助!
在之前的學習中我們已經(jīng)學會出來了通過PDO獲取查詢結果,那接下來就要學習一下PDO的錯誤處理, 在 PDO 中有兩個獲取程序中錯誤信息的方法,分別是 errorCode()
方法和 errorInfo()
方法。接下來我們就一起來看一看這兩種方法的應用吧。
在了解errorCode() 方法和 errorInfo() 方法是怎樣進行錯誤處理的方法之前,我們先來看一下PDO中的錯誤處理模式。
PDO的錯誤處理模式
在PDO 中一共提供了三種不同的錯誤處理模式,它們不僅可以滿足不同風格的編程,也可以調(diào)整擴展處理錯誤的方式。那接下來就給大家介紹一下這三種不同的錯誤處理方式。
-
PDO::ERRMODE_SILENT
PDO::ERRMODE_SILENT
表示的為默認模式,在這種情況下發(fā)生錯誤的時候 ,PDO會簡單的設置一下錯誤碼,不會做其他的任何操作,同時也可以使用PDO::errorCode()
和 PDO::errorInfo()
這兩個方法來檢查語句和檢查數(shù)據(jù)庫對象。
我們需要注意的是,如果錯誤出現(xiàn)的原因是因為調(diào)用語句對象,那么可以調(diào)用這個對象的PDOStatement::errorCode() 或 PDOStatement::errorInfo() 方法。如果錯誤出現(xiàn)的原因是因為調(diào)用數(shù)據(jù)庫對象而產(chǎn)生的,那么可以在數(shù)據(jù)庫對象上調(diào)用PDOStatement::errorCode() 或 PDOStatement::errorInfo() 這兩種方法。
-
PDO::ERRMODE_WARNING
PDO::ERRMODE_WARNING 模式可以設置錯誤代碼,當然了它除了會設置錯誤碼之外,PDO還會發(fā)出一條信息,這條信息是很傳統(tǒng)的E_WARNING 信息。在我們需要調(diào)試或者測試的時候,不想中斷程序但是想弄清楚發(fā)生了什么問題的時候。PDO::ERRMODE_WARNING 這個模式就到了發(fā)揮作用的時候了
-
PDO::ERRMODE_EXCEPTION
PDO::ERRMODE_EXCEPTION 模式也可以設置錯誤碼,初看能夠設置錯誤碼之外,PDO還能夠拋出一個 PDOException 異常類并設置它的屬性來反射錯誤碼和錯誤信息。PDO::ERRMODE_EXCEPTION 模式在調(diào)試的時候也是非常有用的,它可以非常快速地指出代碼中有問題的潛在區(qū)域,因為它會有效地放大腳本中產(chǎn)生錯誤的點。
PDO 使用 SQL-92 SQLSTATE
來規(guī)范錯誤碼字符串,不同 PDO 驅(qū)動程序負責將它們的本地代碼映射為適當?shù)?SQLSTATE 代碼。PDO::errorCode()
方法返回一個單獨的 SQLSTATE
碼。
如果需要