php PDO异常处理详解

 更新时间:2016年11月20日 15:25:00   投稿:daisy  
这篇文章主要给大家介绍了php中PDO异常处理的相关内容,文中给大家先进行了简单的介绍,然后通过实例代码给大家介绍了使用方式,介绍的非常详细,有需要的朋友们可以参考借鉴,感兴趣的朋友们下面来一起学习学习吧。

异常处理:

PHP:默认为直接报错

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

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

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

pdo异常处理设置:

设置PDO::ATTR_ERRMODE ,有以下三个值:

PDO::ERRMODE_SILENT: 默认模式,不主动报错,需要主动以 $pdo->errorInfo()的形式获取错误信息。

PDO::ERRMODE_WARNING: 引发 E_WARNING 错误,主动报错

PDO::ERRMODE_EXCEPTION: 主动抛出 exceptions 异常,需要以try{}cath(){}输出错误信息。

实例:

方式一:

<?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());
} 

方式二:

<?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);

方式三:

<?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正则表达式中修饰符/i, /is, /s, /isU

    浅谈PHP正则表达式中修饰符/i, /is, /s, /isU

    我们在PHP正则表达式的学习中会碰到修饰符,那么关于PHP正则表达式修饰符的理解以及使用我们需要注意什么呢?那么我们来具体的看看它的概念以及相关内容。
    2014-10-10
  • PHP检查端口是否可以被绑定的方法示例

    PHP检查端口是否可以被绑定的方法示例

    这篇文章主要介绍了PHP检查端口是否可以被绑定的方法,涉及php使用stream_socket_server进行网络连接判断的相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法

    php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法

    这篇文章主要介绍了php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法,详细分析了微信支付api.mch.weixin.qq.com域名解析慢原因与使用curl_easy_setopt指定ipv4解决ipv6解析问题的相关技巧,需要的朋友可以参考下
    2016-10-10
  • PHP+redis实现添加处理投票的方法

    PHP+redis实现添加处理投票的方法

    这篇文章主要介绍了PHP+redis实现添加处理投票的方法,结合实例较为详细的分析了PHP+redis数据库操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • PHP写的获取各搜索蜘蛛爬行记录代码

    PHP写的获取各搜索蜘蛛爬行记录代码

    做为站长每天都想知道自己的网站百度蜘蛛等搜索引擎爬虫是否了网站 来抓取文章,一般站长不知道怎么搞用工具查询,也可以查看空间里的日志,但是空间里的日志的记录全是代码你不知道那个是搜索引擎爬虫的来路
    2012-08-08
  • PHP随机数生成代码与使用实例分析

    PHP随机数生成代码与使用实例分析

    在PHP程序设计中,随机数的生成尤为重要。我们需要用随机数在我们的页面中展示随机记录(比如图片、用户记录、文章ID等)。
    2011-04-04
  • php自定义urlencode,urldecode函数实例

    php自定义urlencode,urldecode函数实例

    这篇文章主要介绍了php自定义urlencode,urldecode函数,实例分析了php字符串转码的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP读取和写入CSV文件的示例代码

    PHP读取和写入CSV文件的示例代码

    CSV(逗号分隔值)文件是使用逗号分隔信息的文本文件。该文件的每一行都是一条数据记录,也就意味着它可以用于以表格的形式展现信息。本文主要介绍了PHP读取和写入CSV文件的方法,需要的可以参考一下
    2023-04-04
  • php递归法读取目录及文件的方法

    php递归法读取目录及文件的方法

    这篇文章主要介绍了php递归法读取目录及文件的方法,是非常经典的递归算法,涉及php操作文件及目录的技巧,需要的朋友可以参考下
    2015-01-01
  • PHP中读取照片exif信息的方法

    PHP中读取照片exif信息的方法

    这篇文章主要介绍了PHP中读取照片exif信息的方法,本文从什么是exif信息开始讲解,使用PHP需要什么扩展、及它的安装方法和使用代码示例等,需要的朋友可以参考下
    2014-08-08

最新评论