mysql - PHP中 PDO 的错误模式,ERRMODE_EXCEPTION 和 ERRMODE_WARNING 区别是什么?

查看:87
本文介绍了mysql - PHP中 PDO 的错误模式,ERRMODE_EXCEPTION 和 ERRMODE_WARNING 区别是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

PDO::ERRMODE_EXCEPTION PDO::ERRMODE_WARNING 区别是什么?

我怎么看了以后,觉得这俩除了反馈信息的格式不一样外,别的看起来都一样?

就是讲解的时候有个"抛出"一词,谁可以简单的跟我说说什么区别?

解决方案

错误模式说明:

  • 异常模式:
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

这个模式需要配合 try 使用 :
一旦出错,就会:

  1. 创建一个对象,$e 也可以随便命名,从 $e->getMessage() 获取错误信息;

  2. 采取动作;

try{
    
    要执行的命令...

}catch(PDOException $e){
    echo "执行命令失败:".$e->getMessage();
    失败后的动作...
}

这个其实等于 缺省模式if($pdo->errorInfo()[2]) ...

创建PDO的时候,为什么也用 try?
因为这时候连PDO对象都没有,所以也不能设置错误模式,所以可以用try,
一旦PDO创建成功,错误模式就成了 缺省模式,也就不能用try了.

  • 缺省模式:

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

这个出错,会给 $pdo->errorCode()$pdo->errorInfo()[2] 赋值;

可以用 if($pdo->errorInfo()[2])if($pdo->errorCode()) 判断脚本是不是出错.

如果不出错,上面都是空的;

  • 警告模式:

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

这个会echo出一个错误信息,打乱了脚本;
学习调试的时候使用比较好;
真用起来的时候,很多时候判断不出到底脚本有没有出错;

这篇关于mysql - PHP中 PDO 的错误模式,ERRMODE_EXCEPTION 和 ERRMODE_WARNING 区别是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆