夺命雷公狗---PDO NO:4 的错误处理模式

PDO::ATTR_ERRMODE=>错误处理模式:(3)

PDO::ERRMODE_SILENT:不报错误(忽略)(0)

PDO::ERRMODE_WARNING:以警告的方式报错(1)

PDO::ERRMODE_EXCEPTION:以异常的方式报错(推荐使用)(2)

设置方式:2种

在构造时初始化错误模式

通过pdo对象的setAttribute()方法设置。

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

面向过程 $con->errorCode():SQL语句错误代码

$con->errorInfo():错误信息

面向对象

捕获PDOException异常对象

 

示例1:

// 1. 默认的错误模式(不提示, 我们看到到问题. 被忽视!)

 

<?php
try{
$pdo=new PDO(“mysql:host=localhost;dbname=xsphp”,’root’,”);
}catch(PDOException $e){
echo “数据库连接失败:”.$e->getMessage();
exit;
}
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
echo $pdo->getAttribute(PDO::ATTR_ERRMODE).'<br/>';
$affected_rows=@$pdo->exec(“delete from helloworld”);
if(!$affected_rows){
echo $pdo->errorCode();
echo “<br/>”;
print_r($pdo->errorinfo());
exit;
}
echo ‘OK';

 

 

示例2:

 

//1. 默认的错误模式(不提示, 我们看到到问题. 被忽视!)
//警告模式 PDO::ERRMODE_WARNING
//异常的模式 PDO::ERRMODE_EXCEPTION
try{
$pdo=new PDO(“mysql:host=localhost;dbname=xsphp”,’root’,”);
}catch(PDOException $e){
echo “数据库连接失败:”.$e->getMessage();
exit;
}
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
echo $pdo->getAttribute(PDO::ATTR_ERRMODE).'<br/>';
try{
$affected_rows=$pdo->exec(“delete from helloworld”);
}catch(PDOException $e){
echo “NO”.$e->getMessage();
}
echo ‘OK';

 

 

示例3:

//1. 默认的错误模式(不提示, 我们看到到问题. 被忽视!)
//警告模式 PDO::ERRMODE_WARNING
//异常的模式 PDO::ERRMODE_EXCEPTION
 
try{
$pdo=new PDO(“mysql:host=localhost;dbname=xsphp”,’root’,”);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo “数据库连接失败:”.$e->getMessage();
exit;
}
try{
//使用PDO中的方法执行语句
}catch(PDOException $e){
echo “错误:”.$e->getMessage();
}

 

posted @ 2015-12-09 14:34  夺命雷公狗  阅读(230)  评论(0编辑  收藏  举报