PDO は例外をどのように処理しますか?この記事の内容は、PDO でエラーを処理する 3 つの方法を紹介するもので、困っている方は参考にしていただければ幸いです。
PDO はエラーを処理する 3 つの方法を提供します
PDO::ERRMODE_SILENT: サイレント モード (デフォルト)
PDO::ERRMODE_WARNING: 警告モード
PDO::ERRMODE_EXC TION:例外モード
例:
<?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/>"; }
注: 手順 5 で PDO を例外モードに変更したため、PDO での例外処理には例外クラスをインスタンス化して例外をスローする必要はありません:
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
実行結果 : 通常表示異常なし!
例外がスローされるかどうか、またスローされた例外が意図したものであるかどうかを確認するには、リスニング コード ブロックを意図的に間違って記述します。
//监听 $sql = "select * from pdo111"; //把 pdo 错改成 pdo111
結果:
は、例外処理が成功したことを示す例外メッセージをスローします。
概要: 上記がこの記事の全内容です。その他の関連ビデオの推奨事項: php チュートリアル!