夺命雷公狗---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();
}
原文地址:https://www.cnblogs.com/leigood/p/5032751.html