PDO錯誤與錯誤處理

2021-07-25 12:05:39 字數 1351 閱讀 4282

pdo錯誤處理的三種模式:

引用->

1.pdo::errmode_silent

此為預設模式。 pdo 將只簡單地設定錯誤碼,可使用 pdo::errorcode() 和 pdo::errorinfo() 方法來檢查語句和資料庫物件。如果錯誤是由於對語句物件的呼叫而產生的,那麼可以呼叫那個物件的 pdostatement::errorcode() 或 pdostatement::errorinfo() 方法。如果錯誤是由於呼叫資料庫物件而產生的,那麼可以在資料庫物件上呼叫上述兩個方法。

2.pdo::errmode_warning

除設定錯誤碼之外,pdo 還將發出一條傳統的 e_warning 資訊。如果只是想看看發生了什麼問題且不中斷應用程式的流程,那麼此設定在除錯/測試期間非常有用。

3.pdo::errmode_exception

除設定錯誤碼之外,pdo 還將丟擲乙個 pdoexception 異常類並設定它的屬性來反射錯誤碼和錯誤資訊。此設定在除錯期間也非常有用,因為它會有效地放大指令碼中產生錯誤的點,從而可以非常快速地指出**中有問題的潛在區域(記住:如果異常導致指令碼終止,則事務被自動回滾)。

異常模式另乙個非常有用的是,相比傳統 php 風格的警告,可以更清晰地構建自己的錯誤處理,而且比起靜默模式和顯式地檢查每種資料庫呼叫的返回值,異常模式需要的**/巢狀更少。】

方式:try catch (pdoexception $e)

或者

$dbh->setattribute(pdo::attr_errmode, pdo::errmode_exception);//錯誤處理

當模式為errmode_silent時,如果出現異常程式並不會中斷,也不會丟擲異常,但是可以通過以下方法檢查錯誤

$res=$dbh

->

query

("select wrongcolumn from wrongtable"

);//資料表『wrongcolunm』不錯在

if

(false ===

$res

)throw new

pdoexception

(var_export

($this

->

_connection

->

errorinfo

(),

true

));

是不是很麻煩需要手動跑出異常。

如果設定成errmode_warning

會導致 pdo 丟擲乙個 e_warning 級別的錯誤,而不是 乙個異常 ,程式並不會中斷

而第三種模式就可以用catch到異常啦,很方便。但需要及時捕獲,否則會是致命的。

PDO錯誤處理

pdo errmode silent 這是預設使用的模式。pdo會在statement和database物件上設定簡單的錯誤代號,你可以使用pdo errorcode 和 pdo errorinfo 方法檢查錯誤 如果錯誤是在對statement物件進行呼叫時導致的,你就可以在那個物件上使用 pdo...

PDO錯誤處理模式

pdo中一共提供了三種不同的錯誤處理模式 pdo errmode silent 不報錯誤 pdo errmode warning 以警告的方式報錯 pdo errmode exception 以異常的方式報錯 pdo errmode silent 此為預設模式。pdo 將只簡單地設定錯誤碼,可使用 ...

設定PDO的錯誤處理模式

pdo預設的錯誤處理方式是返回乙個陣列格式的錯誤 如果想要判斷sql有沒有出錯時,就需要寫一組 來檢測這個返回的陣列。覺得這樣有些麻煩。還好pdo還提供了另外兩種處理方式,只要根據需要設定一下就ok了。pdo errmode silent 這是預設使用的模式。pdo會在statement和datab...