php PDO エラーハンドリングの設定方法: 1. "PDO::ERRMODE_SILENT" を設定し、"$pdo->errorInfo()" の形式でエラー情報を取得します; 2. "PDO: :ERRMODE_WARNING" 、"E_WARNING" エラーを確認します。 3. "PDO::ERRMODE_EXCEPTION" を設定し、"try{}cath(){}" でエラー メッセージを出力します。
このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。
php PDO 例外処理の詳細
例外処理:
PHP: デフォルトでは、エラーを直接報告します
MYSQL: デフォルトはサイレントモードです。エラーが発生した場合はエラーになります。エラーは報告されません。
PDO: デフォルトはサイレントモードです。エラーが発生した場合はエラーが報告されます。 . エラーは報告されません。
以前は、PHP はエラーが発生すると、直接エラーを報告していました。その後、エラーが発生した場合、エラー メッセージは直接出力されなくなり、クラス オブジェクト (PDOException) に配置されます。
pdo 例外処理設定:
Set PDO::ATTR_ERRMODE,
PDO::ERRMODE_SILENT: デフォルト モードではエラーが積極的に報告されないため、$pdo->errorInfo() の形式でエラー情報を積極的に取得する必要があります。
PDO::ERRMODE_WARNING: E_WARNING エラーを発生させ、積極的にエラーを報告します。
PDO::ERRMODE_EXCEPTION: 積極的に例外をスローします。try{}cath(){} でエラー情報を出力する必要があります。 。
例:
方法 1:
<?php //默认是不提示的 需要用 errorCode() errorInfo(); try{ $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root",""); //下面这句是默认设置,有无均可 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT); }catch(PDOException $e){ die("数据库连接失败".$e->getMessage()); } $sql = "insert into stuu values(null,'jike','w',55)"; $res = $pdo->exec($sql); if($res){ echo "OK"; }else{ echo $pdo->errorCode(); print_r($pdo->errorInfo()); }
方法 2:
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root",""); //主动以警告的形式报错 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); }catch(PDOException $e){ die("数据库连接失败".$e->getMessage()); } $sql = "insert into stuu values(null,'jike','w',55)"; //若有错误直接在浏览器页面中显示错误信息 $res = $pdo->exec($sql);
方法 3:
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root",""); //主动抛出异常 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION ); }catch(PDOException $e){ die("数据库连接失败".$e->getMessage()); } $sql = "insert into stuu values(null,'jike','w',55)"; //用try{}catch(){}抓取异常 try{ $res = $pdo->exec($sql); }catch(PDOException $e){ echo $e->getMessage(); }
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP PDOエラー処理を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。