1. 程式人生 > >設定PDO的錯誤處理模式

設定PDO的錯誤處理模式

  PDO預設的錯誤處理方式是返回一個數組格式的錯誤程式碼。如果想要判斷SQL有沒有出錯時,就需要寫一組程式碼來檢測這個返回的陣列。覺得這樣有些麻煩。還好PDO還提供了另外兩種處理方式,只要根據需要設定一下就OK了。


PDO::ERRMODE_SILENT
這是預設使用的模式。PDO會在statement和database物件上設定簡單的錯誤代號,可以使用PDO->errorCode() 和 PDO->errorInfo() 方法檢查錯誤;


PDO::ERRMODE_WARNING
使用這個模式時,PDO將會發出一個傳統的E_WARNING資訊。


PDO::ERRMODE_EXCEPTION
PDO會丟擲一個PDOException異常並設定它的屬性來反映錯誤代號和錯誤資訊。


比較之下,我比較傾向於使用第三種,用異常處理錯誤資訊。


設定的時候要注意,這三個都是屬於PDO::ATTR_ERRMODE屬性的值,所以在用setAttribute設定的時候需要加上屬性名:PDO::ATTR_ERRMODE。


程式碼舉例:


$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


應用場景:
在你例項化 pdo 後,執行
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


通常在例項化時加入,例
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));