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...