PDO 提供了三种不同的错误处理模式

PDO::ERRMODE_SILENT

此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 PDOStatement::errorCode() 或 PDOStatement::errorInfo() 方法。如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方法。

PDO::ERRMODE_WARNING

除设置错误码之外,PDO 还将发出一条传统的 E_WARNING 信息。如果只是想看看发生了什么问题且不中断应用程序的流程,那么此设置在调试/测试期间非常有用。

PDO::ERRMODE_EXCEPTION (注意:它会内部自己抛出异常,终断页面)

除设置错误码之外,PDO 还将抛出一个 PDOException 异常类并设置它的属性来反射错误码和错误信息。此设置在调试期间也非常有用,因为它会有效地放大脚本中产生错误的点,从而可以非常快速地指出代码中有问题的潜在区域( 记住:如果异常导致脚本终止,则事务被自动回滚 )。

异常模式另一个非常有用的是,相比传统 php 风格的警告,可以更清晰地构建自己的错误处理,而且比起静默模式和显式地检查每种数据库调用的返回值,异常模式需要的代码/嵌套更少。

时间: 2024-10-02 07:56:01

PDO 提供了三种不同的错误处理模式的相关文章

.NET Framework的CLR提供了三种方法来完成对共享资源

.NET Framework的CLR提供了三种方法来完成对共享资源 ,诸如全局变量域,特定的代码段,静态的和实例化的方法和域. (1) 代码域同步:使用MonITor类可以同步静态/实例化的方法的全部代码或者部分代码段.不支持静态域的同步.在实例化的方法中,this指针用于同步:而在静态的方法中,类用于同步,这在后面会讲到. (2) 手工同步:使用不同的同步类(诸如WaitHandle, Mutex, ReaderWrITerLock, ManualResetEvent, AutoResetEv

微软提供的三种核心服务:Windows+Office 365+Azure

微软提供的三种核心服务:Windows+Office 365+Azure 英文新闻源:http://techcrunch.com/2014/11/10/microsofts-ceo-breaks-down-the-new-soul-of-his-company/中文新闻源:http://techcrunch.cn/2014/11/11/microsofts-ceo-breaks-down-the-new-soul-of-his-company/ 微软目前是全球最大的电脑软件提供商,消费市场.企业

Bootstrap主要提供了三种代码风格

在Bootstrap主要提供了三种代码风格: 1.使用<code></code>来显示单行内联代码 2.使用<pre></pre>来显示多行块代码 3.使用<kbd></kbd>来显示用户输入代码 预编译版本的Bootstrap将代码的样式单独提取出来: 1.LESS版本,请查阅code.less文件 2.Sass版本,请查阅_code.scss文件 编译出来的CSS代码请查阅bootstrap.css文件第688行~第730行,由于

Spring提供的三种装配Bean方式

在Spring中,对象不需要自己查找或创建与其所关联的其他对象,Spring容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质. Spring提供了三种主要的装配Bean的方式: 隐式的bean发现和自动化装配 在Java中进行显示配置 在XML中进行显示配置 隐式的bean发现和自动化装配 Spring从两个方面来实现自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的bean. 自动装配:Spr

PDO 中支持三种错误处理模式:

PDO 支持三种错误处理模式: 静默模式,警告模式,异常模式 静默模式是默认的,需要修改的话,通过设置 PDO 对象的属性完成. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)? $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING)?? $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT)?

Hyper-V提供了三种网络模式

(1)"外部"虚拟网络,是Hyper-V通过将"Microsoft虚拟交换机协议"绑定在主机网卡上实现的.如果虚拟机选择"外部"虚拟网络,则虚拟机"相当"于网络中的台计算机,可以与物理网络中的其他计算机.主机互相访问. (2)"内部"虚拟网络,只允许虚拟机与主机互相访问,不能访问外部(物理网络上的计算机或外部网络,例如Internet),外部也不能访问"内部"的虚拟机. (3)"

selenium提供了三种模式的断言:assert,verify,waitfor

Assert:失败时,该测试将终止 Verify:失败时,该测试继续执行,并将错误日志记录在日显示屏 Waitfor:等待某些条件变为真,一般使用在AJAX应用程序的测试 断言常用的有,具体见如下:assertLocation:判断当前是在正确的页面assertTitle:检查当前页面的title是否正确assertValue:检查input的值,check or radio,有为on,无为offassertSelected:检查select的下拉菜单中选中是否正确assertSelectedO

PHP设计模式笔记三:三种基本设计模式(工厂模式、单例模式、注册树模式) -- Rango韩老师 http://www.imooc.com/learn/236

一.工厂设计模式 index.php $db = IMooc\Factory::createDatabase(); 使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改即可. IMooc/Factory.php 二.单例设计模式 保证在整个脚本运行期间,只有一个对象的实例,比如数据库操纵对象 Database.php Factory.php index.php output同一个对象: object(IMooc\Database)#1 (0) { } object

epoll函数及三种I/O复用函数的对比

epoll函数 #include <sys/epoll.h>int epoll_create(int size)int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)int epoll_wait(int epfd,struct epoll_event * events,int maxevents,int timeout) Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数