pdo简介--错误与错误处理

PDO 简介——错误和错误处理

标签: database数据库exception脚本phpup

2008-09-28 19:42 1623人阅读 评论(0) 举报

 分类:

PHP(10) 

为适合你的应用开发,PDO 提供了3中不同的错误处理策略。

  1. PDO::ERRMODE_SILENT

    这是默认使用的模式。PDO会在statement和database对象上设定简单的错误代号,你可以使用PDO->errorCode() 和 PDO->errorInfo() 方法检查错误;如果错误是在对statement对象进行调用时导致的,你就可以在那个对象上使用 PDOStatement->errorCode() 或 PDOStatement->errorInfo() 方法取得错误信息。而如果错误是在对database对象调用时导致的,你就应该在这个database对象上调用那两个方法。
  2. PDO::ERRMODE_WARNING

    作为设置错误代号的附加,PDO将会发出一个传统的E_WARNING信息。这种设置在除错和调试时是很有用的,如果你只是想看看发生了什么问题而不想中断程序的流程的话。
  3. PDO::ERRMODE_EXCEPTION

    作为设置错误代号的附件,PDO会抛出一个PDOException异常并设置它的属性来反映错误代号和错误信息。这中设置在除错时也是很有用的,因为他会有效的“放大(blow up)”脚本中的出错点,非常快速的指向一个你代码中可能出错区域。(记住:如果异常导致脚本中断,事务处理回自动回滚。)

    异常模式也是非常有用的,因为你可以使用比以前那种使用传统的PHP风格的错误处理结构更清晰的结构处理错误,比使用安静模式使用更少的代码及嵌套,也能够更加明确地检查每个数据库访问的返回值。

    关于PHP中异常的更多信息请看Exceptions章节

PDO 使用基于SQL-92 SQLSTATE 的错误代号字符串;特定的PDO驱动应当将自己本身的代号对应到适当的SQLSTATE代号上。PDO->errorCode() 方法只返回单一的SQLSTATE代号。如果你需要关于一个错误的更加有针对性的信息,PDO也提供了一个PDO->errorInfo()方法,它可以返回一个包含了SQLSTATE代号,特定数据库驱动的错误代号和特定数据库驱动的错误说明字符串。

0
0

我的同类文章

PHP(10)

时间: 2024-10-04 23:49:55

pdo简介--错误与错误处理的相关文章

sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...

使用sql server 导入平面文件源数据时,报错:错误 0xc02020a1: 错误 0xc020902a: 错误 0xc02020c5:错误 0xc0047022: 返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项. 错误 0xc02020a1: 数据流任务 1: 数据转换失败.列"列 6"的数据转换返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项.". (SQL Server 导入

iis7.5错误 配置错误

iis7.5详细错误   HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息模块 IIS Web Core 通知 未知 处理程序 尚未确定 错误代码 0x8007052e 配置错误 无法使用虚拟目录密码作为用户 Administrator 在本地登录到 C:\inetpub\wwwroot 配置文件 不可用(配置隔离) 请求的 URL http://localhost:80/HL4000-Web/Defaul

支付宝移动接入报系统繁忙,参数错误等错误

最近在做支付宝移动端的接入,用的以前的公钥和私钥,结果一直报错,问客服后得到如下答案,这个问题纠结了我一个月,写下来希望有对大家有帮助,少走弯路,最后在吐槽一句,他妈的支付宝就不能把这些问题写在文档里吗... 快捷支付接口目前(发帖日)有两个版本,我们按客户端提交参数区别来分为老版和新版,老版的dmeo提交参数中没有servic这个值,新版的是有的,老版接口使用:1,老版的接口,商户公钥上传地址在ms.alipay.com,这个文档中有写,但从13年9月份开始,ms.alipay.com地址对快

JavaScript中易犯的小错误-------常见错误五:低效的DOM操作

JavaScript中易犯的小错误-------常见错误五:低效的DOM操作js中的DOM基本操作非常简单,但是如何能有效地进行这些操作一直是一个难题.这其中最典型的问题便是批量增加DOM元素.增加一个DOM元素是一步花费很大的操作.而批量增加对系统的花销更是不菲.一个比较好的批量增加的办法便是使用 document fragments :var div = document.getElementsByTagName("my_div");var fragment = document.

JavaScript中易犯的小错误-------常见错误三:内存泄露

国庆放假,今天开始继续!!!!!!!!!!! JavaScript中易犯的小错误-------常见错误三:内存泄露 内存泄露在js变成中几乎是一个无法避免的问题.如果不是特别细心的话,在最后的检查过程中,肯定会出现各种内存泄露问题.下面我们就来举例说明一下:var theThing = null;var replaceThing = function () {     var priorThing = theThing;     var unused = function () {       

ORACLE输出详细错误信息错误行数

... COMMIT; --输出成功信息 DBMS_OUTPUT.PUT_LINE('RUN RESULT: SUCCESS'); EXCEPTION WHEN OTHERS THEN BEGIN ROLLBACK; --输出错误信息 dbms_output.put_line(to_char(DBMS_UTILITY.format_error_backtrace) ||chr(10)||to_char(sqlcode) ||chr(10)||'ERROR '||SQLERRM); END; OR

JavaScript中易犯的小错误-------常见错误四:比较运算符

JavaScript中易犯的小错误-------常见错误四:比较运算符JavaScript中一个比较便捷的地方,便是它可以给每一个在比较运算的结果变量强行转化成布尔类型.但是从另一方面来考虑,有时候它也会为我们带来很多不便,下面的这些例子便是一些一直困扰很多程序员的代码实例:console.log(false == '0');console.log(null == undefined);console.log(" \t\r\n" == 0);console.log('' == 0);

JavaScript中易犯的小错误-------常见错误七:原型继承问题

JavaScript中易犯的小错误-------常见错误七:原型继承问题 很大一部分的js开发者都不能完全掌握原型的继承问题.下面具一个例子来说明:BaseObject = function(name) {if(typeof name !== "undefined"){ this.name = name; }else{ this.name = 'default' } };这段代码看起来很简单.如果你有name值,则使用它.如果没有,则使用 ‘default’:var firstObj

JavaScript中易犯的小错误-------常见错误二:传统编程语言的生命周期误区

JavaScript中易犯的小错误-------常见错误二:传统编程语言的生命周期误区另一种易犯的错误,便是带着其他编程语言的思维,认为在JS中,也存在生命周期这么一说.请看下面的代码:for (var i = 0; i < 10; i++) { /* ... */ } console.log(i);如果你认为在运行console.log() 时肯定会报出 undefined 错误,那么你就大错特错了.我会告诉你其实它会返回 10吗.当然,在许多其他语言当中,遇到这样的代码,肯定会报错.因为i明