php pdo 错误信息,PHP的PDO错误与错误处理
PHP 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风格的警告,可以更清晰地构建自己的错误处理,而且比起静默模式和显式地检查每种数据库调用的返回值,异常模式需要的代码/嵌套更少。
创建 PDO 实例并设置错误模式
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
注意:不管当前是否设置了PDO::ATTR_ERRMODE,如果连接失败,PDO::__construct()将总是抛出一个 PDOException 异常。未捕获异常是致命的。
创建 PDO 实例并在构造函数中设置错误模式
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';
/*
使用 try/catch 围绕构造函数仍然有效,即使设置了 ERRMODE 为 WARNING,
因为如果连接失败,PDO::__construct 将总是抛出一个 PDOException 异常。
*/
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit;
}
// 这里将导致 PDO 抛出一个 E_WARNING 级别的错误,而不是 一个异常 (当数据表不存在时)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>
以上例程会输出:
Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18
add a note add a note
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
php pdo 错误信息,PHP的PDO错误与错误处理相关推荐
- ajax 错误信息error,jquery ajax的error错误信息
项目开发中ajax的异常处理起来算是比较头疼的,因为是异步请求,所以即使ajax异常程序依然会继续执行,导致找ajax的异常比较麻烦. 今天处理ajax异常时搜到一篇文章,提到error可以返回aja ...
- php 异常错误信息用处,关于PHP中异常错误的处理详细介绍
1. 错误报告级别 error_reporting()error_reporting(int $level); PHP 5.4 及以上 E_ALL 包含了 E_STRICT. PHP Manual 所 ...
- 服务器mvc提示404错误信息,解决Spring MVC提示404错误找不到JSP问题
Spring mvc开发时当遇到404错误是一个比较蛋疼的问题,因为一般不会到达后台和Controller,所以在日志中不会有信息.这时只能通过经验解决了. 一般情况都是Url的Mapping没有找到 ...
- mvc怎么请求服务器错误信息,asp.net-mvc – IIS显示服务器错误而不是自定义错误...
我正在使用MVC 5,我正在使用自定义视图处理我的错误,例如(404,403 --等) 它在我的本地IIS上工作正常,但是当我在登台服务器上发布时,它显示有关这些错误代码的IIS服务器错误消息. 它显 ...
- c语言提示错误信息,【资料】C语言错误信息中文解释
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.#operator not followed by macro argument name "#"运算符后无宏变元名.在宏定义中, ...
- c语言编译错误信息详细解释,C语言编译错误信息说明大全
C说明 #operator not followed by maco argument name #运算符后没跟宏变元名 Ambiguous operators need parentheses 不明 ...
- java post请求返回500错误信息_Retrofit API Post call 返回错误 500,适用于 Postman
我正在尝试使用改进 2 使用其他 API,我已经能够使用一些端点,但注册端点不断返回 http 500 错误代码,但在使用邮递员测试时工作正常. @POST("auth/signup/&qu ...
- 【连载】优秀程序员的45个习惯之37——提供有用的错误信息
提供有用的错误信息 -- 高效程序员的 45 个习惯之习惯37 "不要吓着用户,吓程序员也不行.要提供给他们干净整洁的错误信息.要使用类似'用户错误.替换,然后继续.'这样让人舒服的词句. ...
- 项目上线,php的错误信息必须不让其在页面中显示给客户,
对于PHP开发者来 说,一旦某个产品投入使用,应该立即将 display_errors选项关闭,以免因为这些错误所透露的路径.数据库连接.数据表等信息而遭到黑客攻击.但是,任何一个产品在投入使用后,都 ...
最新文章
- 仟叶学校:武汉老师最燃演讲“人生很贵,请别浪费”
- UGUI 自动布局的重叠BUG
- 计组-CISC和RISC的基本概念
- php包括web前端,web前端包括什么技术?
- 如何给SAP Cloud Connector Region列表中添加新的Region
- docker开放的端口_docker-5-解决宿主机没有开放81端口却可以直接访问docker启动的81端口nginx容器的问题...
- 价格穿越,跟 普通的大于 小于是有差别的
- HTML中的特殊字符
- JAVA:一个简易的文本编辑器
- linux下安装卸载永中office步骤,永中集成Office For Linux安装图文指南及简介
- JSP基础教程之表单编辑
- 学生用计算机的使用技巧,选学生笔记本电脑的小窍门
- Axure R8学习记录
- cocos 随机变色的拖尾
- Vue中如何根据svg内容显示图片
- 2022年河南省焊工高级技师理论知识模拟试题及答案
- 黑马程序员顺义校区php_PHP面向对象开发视频教程[黑马程序员]
- C++头文件和源文件的编译过程
- 可能是全网最详细的python安装教程(windows),小白建议收藏
- iphone手机safari浏览器访问网站滚动条不显示问题解决办法
热门文章
- android fragment学习6--FragmentTabHost底部布局
- 基于JAVA+Servlet+JSP+MYSQL的失物招领系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线学习管理系统源码
- java 窗口鼠标句柄_c#获取窗体句柄模拟鼠标点击
- XML DOM Object Model in .NET [3/3] - Samples
- day55 linux 基础以及系统优化
- RS-232 vs. TTL Serial Communication(转载)
- 再看产业地图及《中国2010-2011产业地图》书评
- FreeBSD重新加载rc.conf
- mysql 产品表 myisam好还是innodb好_mysql两种表存储结构myisam和innodb的性能比较测试...