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