pdo的错误处理
1、比如,pdo对象执行如下“错误sql语句”,
$re1 = $pdo->exec(“ deleteeee from XXX where id = 12” );
则根据我们之前对pdo的了解,此时返回的是false——表示执行错误。
但此时,有怎么对其进行“错误处理”。
我们来对比之前的纯mysql函数:
$sql = “deleteddddd from YYYY where id = 12”;
$result = mysql_query( $sql );
if( $result === false ){ //错误时的处理:
echo “发生错误:” . mysql_error();
}
else{
//正确时 。。。。
}
那么,pdo的错误处理,默认跟该形式几乎一样!
类似这样:
if( $re1=== false ){ //错误时的处理:
echo “错误代号:” . $pdo->errorcode(); //errorcode()就是一个数字(代号)
echo “错误信息:” . $pdo->errorinfo(); //errorinfo()的结果是一个数组!
//实际应该这样:
$err = $pdo->errorinfo();
echo “错误信息:” . $err[2];
}
else{
//正确时 。。。。
}
举例:

1、什么叫做异常?异常就是不正常。对编程的人来说,凡是“超出程序员的逻辑预计”的结果,都是异常
——其实,异常,就是“错误”的另一个说法——是在面向对象领域的说法。
因为,一个错误发生,其实也可以说生成了一个“异常对象”——系统内部有一个“异常类”。
要想pdo发生错误时,以异常模式进行处理,得先“设置”pdo错误处理模式为“异常模式”,如下:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
然后,异常模式的处理语法为:
try{
$re1 = $pdo->query( “sql语句”);
var_dump($re1);
}
catch( PDOEXCEPTION $e ){ //PDOEXCEPTION是一个“内部类”,表示pdo的异常类
//$e是一个该类的对象。
echo “发生错误:”
echo “错误代号” . $e->getcode() ;
echo “错误内容” . $e->getmessage();
}
总体解释:
程序会“尝试执行”try中语句:
如果没有发生错误,则就完全执行完该段代码。
如果发生错误,则程序在try中立即停止,并进入catch部分执行其中的代码,此时并且会自动生成一个“异常对象”($e)
举例:
什么叫做异常?异常就是不正常。对编程的人来说,凡是“超出程序员的逻辑预计”的结果,都是异常
——其实,异常,就是“错误”的另一个说法——是在面向对象领域的说法。
因为,一个错误发生,其实也可以说生成了一个“异常对象”——系统内部有一个“异常类”。
要想pdo发生错误时,以异常模式进行处理,得先“设置”pdo错误处理模式为“异常模式”,如下:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
然后,异常模式的处理语法为:
try{
$re1 = $pdo->query( “sql语句”);
var_dump($re1);
}
catch( PDOEXCEPTION $e ){ //PDOEXCEPTION是一个“内部类”,表示pdo的异常类
//$e是一个该类的对象。
echo “发生错误:”
echo “错误代号” . $e->getcode() ;
echo “错误内容” . $e->getmessage();
}
总体解释:
程序会“尝试执行”try中语句:
如果没有发生错误,则就完全执行完该段代码。
如果发生错误,则程序在try中立即停止,并进入catch部分执行其中的代码,此时并且会自动生成一个“异常对象”($e)
举例:

2、结果为:
