PDO 错误处理模式
异常模式:
$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出一个错误信息,打乱了脚本;
学习调试的时候使用比较好;
真用起来的时候,很多时候判断不出到底脚本有没有出错;
PDO 错误处理模式的更多相关文章
- 学习PDO中的错误与错误处理模式
在 PDO 的学习过程中,我们经常会在使用事务的时候加上 try...catch 来进行事务的回滚操作,但是大家有没有注意到默认情况下 PDO 是如何处理错误语句导致的数据库操作失败问题呢?今天,我们 ...
- PHP中PDO错误/异常(PDOException)处理
PDO 提供了三种不同的错误处理模式,以满足不同风格的应用开发: PDO::ERRMODE_SILENT 此为默认模式. PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 P ...
- Swift—do-try-catch错误处理模式-备
Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil,不进行错误处理. let contents = ...
- Swift—Cocoa错误处理模式-备
Swift错误处理模式,在Swift1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现在Objective-C还沿用这种处理模式,而S ...
- 《从零开始学Swift》学习笔记(Day 53)——do-try-catch错误处理模式
原创文章,欢迎转载.转载请注明:关东升的博客 Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil, ...
- 《从零开始学Swift》学习笔记(Day 52)——Cocoa错误处理模式
原创文章,欢迎转载.转载请注明:关东升的博客 Swift错误处理模式,在Swift 1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现 ...
- 《从零開始学Swift》学习笔记(Day 52)——Cocoa错误处理模式
原创文章,欢迎转载. 转载请注明:关东升的博客 Swift错误处理模式,在Swift1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式採用Cocoa框架错误处理模式,到如 ...
- PHP PDO的错误处理模式
PDO默认的错误处理方式是返回一个数组格式的错误代码.如果想要判断SQL有没有出错时,就需要写一组代码来检测这个返回的数组.觉得这样有些麻烦.还好PDO还提供了另外两种处理方式,只要根据需要设置一下就 ...
- PDO 提供了三种不同的错误处理模式
PDO::ERRMODE_SILENT 此为默认模式. PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象.如果错 ...
随机推荐
- regular expression 在线检测的网站
http://regexone.com/ 学习网站 http://regexone.com/lesson/optional_characters? http://regexone.com/less ...
- oracle 建表 主键自增序列/////
oracle 建表 主键自增序列 (2011-10-12 11:59:22) 转载▼ 标签: 杂谈 分类: oracle SQL> create table sms_activity( 2 ...
- bzoj1933
背包dp 一道很早以前就见过的dp dp[i][j][k]表示选到第i本书,第一层宽度为j,第二层宽度为k的最小高度,我们先把书按高度排序,然后转移就很方便了,因为高度降序,所以后选的书不影响之前选的 ...
- redis过期键删除策略以及大key删除方法
今天遇到了一个前同事挖的坑,刷新缓存中商品信息时先让key过期,然后从数据库里取最新数据然后再放到缓存中,他是这样写的 redisTemplate.expire(CacheConst.GOOGS_PR ...
- javascript复制内容到剪切板/网页上的复制按钮的实现
javascript复制内容到剪切板/网页上的复制按钮的实现:DEMO如下 <!doctype html> <html> <head> <meta chars ...
- oauth X-Frame-Options 跳转授权页面时,302重定向禁用iframe
因为oauth/authorize响应头包含X-Frame-Options: DENY解决方案:openresty nginx 移除该属性,经测试生效 more_clear_headers X-Fra ...
- tableView 加载更多
在ios开中中,由于屏幕尺寸限制,如果需要显示的数据很多,需要用到分页加载. 原理:先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是 ...
- python 关闭redis的连接
在python语言中使用redis时,没有找到对应的关闭的方法 try: self.redisconn = StrictRedisCluster(startup_nodes=self.redisNod ...
- 【css】rem及其替换方案
移动端的web前端开发其实经常会有一些令人头疼的问题,比如屏幕适配.1像素问题等,rem也是之前在屏幕适配上比较完善的一套方案,但是随着业务的深入,任何方案都有其优秀与不足的地方,rem这套方案也一样 ...
- docker学习教程
我们的docker学习教程可以分为以下几个部分,分别是: 第一:docker基础学习 第二:docker日志管理 第三:docker监控管理 第四:docker三剑客之一:docker-machine ...