1. 程式人生 > >PDO異常處理

PDO異常處理

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異常處理