pdo的错误处理

2025-11-02 08:12:35

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{

//正确时 。。。。

}

举例:

pdo的错误处理

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)

举例:

pdo的错误处理

2、结果为:

pdo的错误处理

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢