zoukankan      html  css  js  c++  java
  • 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

    结果:

    抛出异常信息,说明异常处理成功! 

  • 相关阅读:
    【转载】这才是真正的表扩展方案
    【转载】啥,又要为表增加一列属性?
    【转载】这才是真正的分布式锁
    mysql备份表sql
    selenium定位当前处于那个iframe(frame)中
    MQ手动推送消息
    报表导出时间格式数据多‘0‘
    python里的原始字符串
    qq邮箱设置授权码方法(jenkins)
    Apache与Tomcat有什么关系和区别(转)
  • 原文地址:https://www.cnblogs.com/zxf100/p/6821162.html
Copyright © 2011-2022 走看看