php_pdo 异常处理

原创 2016年05月31日 16:48:26

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开发者来说,一旦某个产品投入使用,应该立即将 display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。但是,任何一个产品在投入使用后,都难...
  • u013372487
  • u013372487
  • 2016年05月27日 17:33
  • 1287

数据库断线重连

数据库断线重连是指,在服务器出现某些原因导致数据库连接中断,需要启动重新连接数据库,并重新执行中断的数据库操作。 Thinkphp5.0 是支持数据库断线重连的,代码很值得学习。它支持查询 qu...
  • e62ces0iem
  • e62ces0iem
  • 2017年06月08日 21:35
  • 509

如何catch PDO 异常、处理PDO异常

pdo异常处理设置: 设置PDO::ATTR_ERRMODE ,有以下三个值: PDO::ERRMODE_SILENT: 默认模式,不主动报错,需要主动以 $pdo->errorInfo()的...
  • Arvin9i
  • Arvin9i
  • 2016年08月04日 21:05
  • 1342

PDO连接数据库及DSN详解

PDO构造函数     在PDO中,要建立与数据库的连接需要实例化PDO的构造函数,PDO构造函数的语法如下: __construct(string $dsn[,string $username[...
  • qq_28602957
  • qq_28602957
  • 2016年03月29日 17:19
  • 6086

Php pdo链接access数据库并循环显示数据

try { $conn = new PDO("odbc:driver={microsoft access driver (*.mdb)};               dbq=".realpa...
  • u011924274
  • u011924274
  • 2016年03月31日 14:59
  • 487

PDO 简介——PDO中的三个类及其方法

PDO中包含三个预定义的类,它们分别是 PDO、PDOStatement 和 PDOException,下面将分别简单介绍一下。后面的系列相关文章会使用若干示例介绍这几个类的使用。 一、PDO ...
  • sb___itfk
  • sb___itfk
  • 2014年08月31日 15:50
  • 366

php pdo连接数据库 解决中文乱码问题

php 用pdo连接数据库时出现中文乱码问题解决办法 1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"),在与数据库建立连接的时候的第...
  • ysydao
  • ysydao
  • 2013年09月03日 17:13
  • 7706

PHP中PDO解决中文乱码

在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR_INIT_COM...
  • xz_src
  • xz_src
  • 2017年06月14日 14:21
  • 565

Java try-catch-finally进行异常处理以及throw主动抛出异常

1.try内声明的变量,类似于局部变量,出了try{}语句,就不能被调用 2.finally是可选的。 3.catch语句内部是对异常对象的处理:      >getMessage();  print...
  • u013453970
  • u013453970
  • 2015年08月18日 21:44
  • 4563

一个关于php使用pdo方式进行数据库连接和处理的类

话不多说,先贴代码
  • meeeen7
  • meeeen7
  • 2016年08月06日 15:24
  • 2752
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php_pdo 异常处理
举报原因:
原因补充:

(最多只允许输入30个字)