PDO는 예외를 어떻게 처리하나요? 이 글의 내용은 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
결과:
예외 처리가 성공했음을 나타내는 예외 정보가 발생합니다!
요약: 위의 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 동영상을 추천합니다: php 튜토리얼!