PDO 全称 PHP Data Object

​------------------    错误处理  -------------------------

​​php 的 mysql 扩展对于 mysql 执行中的错误,并不报错显示在页面上。默认是“静默模式”。如果要显示错误到页面上,需要使用函数 mysql_error()

if( !mysql_query("select * from ") ){

echo mysql_error();

}

PDO 类对错误的处理默认也是“静默模式”。​要输出错误信息,也需要手动输出。

$pdo->errorCode() //获得错误的编码

$pdo->errorInfo() //错误信息集合​,包含三个元素的索引数组

PDO 支持三种错误处理模式:

静默模式,警告模式,异常模式

静默模式是默认的,需要修改的话,通过设置 PDO 对象的属性完成。

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)​

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING)​​

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)​​

警告模式:

警告模式也不是什么特别的东西哦,错误发生时会报一个警告,就只是一个警告,默认情况下,php对警告的处理是输出页面,可以自己定义处理函数。

异常模式:

​异常处理分成三步:抛出异常,监听异常,捕获异常。

​​其实异常就是错误。抛出的错误就是异常。错误处理是:触发,处理。这里的的触发就是异常处理的“抛出”。

抛出:throw

监听:try

捕获:catch​

​异常的工作原理是这样的,把一些信息放到一个类的对象里面,这就是异常处理的原理。这个类叫异常类。这些信息叫异常信息。这没有什么特别的。这个异常类是 Exception .

一般的异常处理:

​try{

$age = 28;​

if( $age > 26 ){

throw new Exception("年龄过大");

}

}catch( Exception $e ){

echo $e->getMessage();

}

throw 会抛出一个异常对象,这个对象是异常类的对象,所以写为 new Exception 。​

try 会监听写在它里面的异常。​catch 会捕获它的参数对应的异常。这里 catch 的参数是 Exception $e ,这种写法表示这个参数是一个对象,而且只能是 Exception 类的对象。这是 php 语法里面对参数的限制。这个异常类可以是 Exception 或者 它的子类。如果是它的子类,那么 throw new 的类也应该是 ​Exception 类的子类(我是这么想的,未测试)。

PDO 的异常处理:​​

​​try{

$pdo->query("set names "); //不需要抛出异常,可能是在query函数中抛出的

echo '错误了'; //这句不会输出​,抛出异常后程序挂起,必须处理异常,处理异常后这句也不执行。

}catch( PDOException $e ){  //PDOException类是 Exception类的子类的子类

echo $e->getMessage();

}

其实,异常处理就是用面向对象的语法来处理错误。用一般的面向过程的方法也是可以,只是面向对象的语法比较高级。所以,错误处理方式分成两种:标准错误处理,异常错误处理。

PDO 的错误处理的更多相关文章

  1. PHP PDO的错误处理模式

    PDO默认的错误处理方式是返回一个数组格式的错误代码.如果想要判断SQL有没有出错时,就需要写一组代码来检测这个返回的数组.觉得这样有些麻烦.还好PDO还提供了另外两种处理方式,只要根据需要设置一下就 ...

  2. pdo mysql错误:Cannot execute queries while other unbuffered queries are active

    运行环境:PHP 5.5.30-x64,MYSQL  5.6.27 错误代码:Cannot execute queries while other unbuffered queries are act ...

  3. 跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL

    我们在使用PDO去执行sql语句的时候并不会报错.如下案例所示: <?php try { //$pdo = new pdo("mysql:host=主机;port=端口;dbname= ...

  4. 学习PDO中的错误与错误处理模式

    在 PDO 的学习过程中,我们经常会在使用事务的时候加上 try...catch 来进行事务的回滚操作,但是大家有没有注意到默认情况下 PDO 是如何处理错误语句导致的数据库操作失败问题呢?今天,我们 ...

  5. 前端学PHP之PDO基础操作

    × 目录 [1]创建PDO [2]使用PDO [3]事务处理 前面的话 PDO(php data object)扩展类库为php访问数据库定义了轻量级的.一致性的接口,它提供了一个数据库访问抽象层,这 ...

  6. php大力力 [050节] 兄弟连高洛峰 PHP教程 2014年[数据库、PDO教程]

    php大力力 [050节] 兄弟连高洛峰 PHP教程 2014年[数据库.PDO教程] 第14章 数据库252.[2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库[已发布,点击下载]253. ...

  7. PDO预处理

    方法:bool PDOStatement::execute ([ array $input_parameters ] ) 1.PDOStatement::execute不使用参数 01)单个绑定值(P ...

  8. PHP5中PDO的简单使用

    PHP5中PDO的简单使用 标签: php数据库mysql扩展extensionexception 2012-05-06 10:27 27753人阅读 评论(0) 收藏 举报  分类: PHP(6)  ...

  9. php错误以及常用笔记

    //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH 变量名建 ...

随机推荐

  1. 1 基础架构:一条sql查询语句如何执行?

    1 基础架构:一条sql查询语句如何执行? 分析一个最简单的查询 mysql> select * from T where ID=10: MySQL基本架构示意图 大体来说,mysql可以分为s ...

  2. st.getParameter() 和request.getAttribute() 区别 https://terryjs.iteye.com/blog/1317610

    getParameter 是用来接受用post个get方法传递过来的参数的.getAttribute 必须先setAttribute. (1)request.getParameter() 取得是通过容 ...

  3. Flask 启动配置

    数据迁移.

  4. AWS Cloud Practioner 官方课程笔记 - Part 1

    课程笔记: 1. 3种访问AWS服务的方式: GUI, CLI, SDK 前两种是用户用来访问的,SDK可以让程序调用去访问服务. 2. core services 以及通用的use cases Am ...

  5. C#打印单据

    HTML: <form id="form1">        <div id="t_border">            <!- ...

  6. vue—拖拽

  7. Maven-Eclipse使用maven创建HelloWorld Java项目,使用Junit-4.11的注解

    1.针对前面创建的mavenTest项目,我们做一些修改,包括pom.xml.App.java.AppTest.java 说明:其中的scope属性,如果是test,表示该依赖只对测试有效,如果不声明 ...

  8. SQL取年月日的不同格式

    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE( ...

  9. Buy Tickets POJ - 2828 思维+线段树

    Buy Tickets POJ - 2828 思维+线段树 题意 是说有n个人买票,但是呢这n个人都会去插队,问最后的队列是什么情况.插队的输入是两个数,第一个是前面有多少人,第二个是这个人的编号,最 ...

  10. HDU 1069 Monkey and Banana dp 题解

    HDU 1069 Monkey and Banana 纵有疾风起 题目大意 一堆科学家研究猩猩的智商,给他M种长方体,每种N个.然后,将一个香蕉挂在屋顶,让猩猩通过 叠长方体来够到香蕉. 现在给你M种 ...