mysql-PHP中PDO的错误模式,ERRMODE_EXCEPTION和ERRMODE_WARNING区别是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-PHP中PDO的错误模式,ERRMODE_EXCEPTION和ERRMODE_WARNING区别是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1873字,纯文字阅读大概需要3分钟。
内容图文
![mysql-PHP中PDO的错误模式,ERRMODE_EXCEPTION和ERRMODE_WARNING区别是什么?](/upload/InfoBanner/zyjiaocheng/244/fedb404663be49fea22177aeee8f3246.jpg)
我怎么看了以后,觉得这俩除了反馈信息的格式不一样外,别的看起来都一样?
就是讲解的时候有个"抛出"一词,谁可以简单的跟我说说什么区别?
回复内容:
PDO::ERRMODE_EXCEPTION PDO::ERRMODE_WARNING 区别是什么?
我怎么看了以后,觉得这俩除了反馈信息的格式不一样外,别的看起来都一样?
就是讲解的时候有个"抛出"一词,谁可以简单的跟我说说什么区别?
错误模式说明:
异常模式:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
这个模式需要配合 try 使用 :
一旦出错,就会:
创建一个对象,$e 也可以随便命名,从 $e->getMessage() 获取错误信息;
采取动作;
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出一个错误信息,打乱了脚本;
学习调试的时候使用比较好;
真用起来的时候,很多时候判断不出到底脚本有没有出错;
请注意PHP的错误等级一文。
Warning
级别的错误,会直接显示在页面上,且无法自行根据错误处理相关的业务逻辑。Exception
则是抛出一个可以被捕获的Exception
对象,可以获取到详细的异常信息。
try {
$stmt = $pdo->prepare("select * from id = :id");
// PGSQL严格限制数据类型,serial字段使用字符串字段进行匹配将会出错
$stmt->bindValue(':id','string',PDO::PARAM_STR);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
// PDO执行出错时执行
// 可以捕获到PDO抛出的异常,可以获取到详细的错误代码,错误描述,哪个文件第几行出错,本次请求中所有执行的文件等等
var_dump($e);
}
内容总结
以上是互联网集市为您收集整理的mysql-PHP中PDO的错误模式,ERRMODE_EXCEPTION和ERRMODE_WARNING区别是什么?全部内容,希望文章能够帮你解决mysql-PHP中PDO的错误模式,ERRMODE_EXCEPTION和ERRMODE_WARNING区别是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。