PDO異常處理
阿新 • • 發佈:2017-05-07
com pan war har from 模式 說明 我們 mod
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
結果:
拋出異常信息,說明異常處理成功!
PDO異常處理