php实现的PDO异常处理操作分析

 更新时间:2018年12月27日 11:39:45   作者:菜鸟学编程$  
这篇文章主要介绍了php实现的PDO异常处理操作,结合实例形式分析了pdo异常处理的相关原理、用法及操作注意事项,需要的朋友可以参考下

本文实例讲述了php实现的PDO异常处理操作。分享给大家供大家参考,具体如下:

异常处理:

PHP:默认为直接报错

MYSQL:默认为静默模式,错就错,不报错

PDO:默认为静默模式,错就错,不报错

以前,当PHP碰到错误的时候,会直接报错,错误处理会变得相当麻烦。后来,当错误发生之后,会将错误信息不再直接输出,放到一个类的对象里(PDOException)

要使用PDO异常处理,必须满足两个条件

1、需要将错误处理模式变成异常模式

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

2、所有可能出错的语句都必须放到错误捕捉语句块里

try{
   //错误捕捉语句块
   //凡是有可能出现错误的语句都放在这
   //一旦出错会立即进入catch语句,把所有的错误信息放到PDOexception $e里面
}catch(PDOExecption $e){
   //将错误信息进行处理
}

例如:

try{
  //连接认证
  $pdo = new PDO('mysql:host=localhost;dbname=project','root','root');
  //设置错误处理模式
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  //组织SQL
  $sql= "update pro_student set s_age = 123 where s_id = 20";
  $res = $pdo->exec($sql);
}catch(PDOException $e){
  //var_dump($e);
  //告诉用户在哪个文件的哪一行出现了什么样的错误
  echo '出现异常:<br/>';
  echo '错误出现的位置:' . $e->getFile() . $e->getLine() . '<br/>';
  echo '错误原因:' . $e->getMessage();
  var_dump($e->getTrace());//获取完整的错误数据
  exit;
}

有的时候,如果数据执行没有任何错误,但是就是不符合指定的业务逻辑。一旦出现业务逻辑错误,异常是没有办法捕捉(异常只捕捉语法错误),一般认为的去通过判断语句的执行(结果),主动抛出异常,从而结束错误程序的运行。

语法:throw new PDOException;

$sql = "select * from pro_student where s_id = 20";
$stmt = $pdo->query($sql);
if($stmt->fetchColumn(4) > 100) throw new PDOException; //抛出异常,立马跳转到catch语句块
else{
  echo '没有问题';
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP优化之批量操作MySQL实例分析

    PHP优化之批量操作MySQL实例分析

    这篇文章主要介绍了PHP优化之批量操作MySQL,结合实例形式对比分析了PHP批量操作MySQL相关实现技巧与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • php将字符串转换为数组实例讲解

    php将字符串转换为数组实例讲解

    在本篇文章里小编给大家分享的是关于php将字符串转换为数组实例讲解,需要的朋友们可以学习下。
    2020-05-05
  • 浅谈PHP SHA1withRSA加密生成签名及验签

    浅谈PHP SHA1withRSA加密生成签名及验签

    这篇文章主要介绍了PHP SHA1withRSA加密生成签名及验签,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • PHP处理postfix邮件内容的方法

    PHP处理postfix邮件内容的方法

    这篇文章主要介绍了PHP处理postfix邮件内容的方法,涉及php读取、正则匹配邮件内容的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PHP 无限分类三种方式 非函数的递归调用!

    PHP 无限分类三种方式 非函数的递归调用!

    今天分享下自己学习细说php中的无限分类方法。学习php的朋友可以参考下。
    2011-08-08
  • 关于PHP通用返回值设置方法

    关于PHP通用返回值设置方法

    下面小编就为大家带来一篇关于PHP通用返回值设置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • PHP设计模式之装饰者模式代码实例

    PHP设计模式之装饰者模式代码实例

    这篇文章主要介绍了PHP设计模式之装饰者模式代码实例,装饰者模式就是不修改原类代码和继承的情况下动态扩展类的功能,本文就给出了代码实例,需要的朋友可以参考下
    2015-05-05
  • PHP利用ChatGPT实现轻松创建用户注册页面

    PHP利用ChatGPT实现轻松创建用户注册页面

    ChatGPT 是 OpenAI 开发的 GPT语言模型的变体,它是一种大型单向语言模型。本文就来利用ChatGPT创建简单的用户注册页面,感兴趣的可以了解一下
    2023-02-02
  • php去掉URL网址中带有PHPSESSID的配置方法

    php去掉URL网址中带有PHPSESSID的配置方法

    这篇文章主要介绍了php开发的网站网址中带有PHPSESSID的解决办法,也就是把PHP的跨页传递SESSION选择在php.ini中关闭,这样这个参数就不会出现在URL中了,需要的朋友可以参考下
    2014-07-07
  • PHP OPCode缓存 APC详细介绍

    PHP OPCode缓存 APC详细介绍

    PHP语言在性能上相对于其他编译型语言来说性能算不上突出,但是使用了OPCode缓存后性能提升还是很明显的.常见的主要有Eaccelerator,XCache,APC本文主要介绍APC的使用.
    2010-10-10

最新评论