PDO提供了三種處理錯誤的方式 PDO::ERRMODE_SILENT:靜默模式(預設) PDO::ERRMODE_WARNING:警告模式 PDO::ERRMODE_EXCEPTION:異常模式 示例: 註意:在PDO中進行異常處理不需要實例化異常類並拋出異常,因為我們在第5步已經把PDO修改為異 ...
PDO提供了三種處理錯誤的方式
PDO::ERRMODE_SILENT:靜默模式(預設)
PDO::ERRMODE_WARNING:警告模式
PDO::ERRMODE_EXCEPTION:異常模式
示例:
<?php /** * 利用PDO對象實現異常處理操作 */ echo "<meta charset=utf-8>"; //PDO類的實例化 // 1 設置數據源相關參數 $dbms = 'mysql'; //選擇資料庫類型 $host = 'localhost'; $port = '3306'; $dbname = 'test'; $charset = 'utf8'; $dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset"; // 2 設置用戶名密碼 $user = 'root'; $pwd = ''; // 3 實例化PDO類 $pdo = new PDO($dsn,$user,$pwd); // 4 設置PDO相關屬性 $pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER); // 5 修改PDO為異常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); try{
//監聽 $sql = "select * from pdo"; $stmt = $pdo->query($sql); }catch(PDOException $e){ //捕獲異常 echo "錯誤信息為:".$e->getmessage()."<br/>"; echo "錯誤代碼為:".$e->getCode()."<br/>"; echo "錯誤文件為:".$e->getFile()."<br/>"; echo "錯誤行號為:".$e->getLine()."<br/>"; }
註意:在PDO中進行異常處理不需要實例化異常類並拋出異常,因為我們在第5步已經把PDO修改為異常模式
($pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);)
運行結果:正常顯示沒有異常!
把監聽代碼塊故意寫錯,看看是否拋出異常,拋出的異常是不是我們想要的!
//監聽 $sql = "select * from pdo111"; //把 pdo 錯改成 pdo111
結果:
拋出異常信息,說明異常處理成功!