PHP中PDO的事务处理分析


Posted in PHP onApril 07, 2016

本文实例分析了PHP中PDO的事务处理。分享给大家供大家参考,具体如下:

事务处理具有四个特性:原子性、一致性、独立性、持久性。

并不是所有的数据库都支持事务处理的,PDO 为能够执行事务处理的数据库提供事务支持。

配置事务处理需注意:

1、关闭 PDO 的自动提交;

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false);

2、开启一个事务需要的方法;

$pdo->beginTransaction(); // 开启一个事务
$pdo->commit(); // 提交事务
$pdo->rollback(); // 回滚事务

3、一般事务处理是运行在 try...catch...语句中,当事务失败时执行 catch 代码段。

<?php
try {
  $pdo->beginTransaction(); // 开启一个事务
  $row = null;
  $row = $pdo->exec("xxx"); // 执行第一个 SQL
  if (!$row)
    throw new PDOException('提示信息或执行动作'); // 如出现异常提示信息或执行动作
  $row = $pdo->exec("xxx"); // 执行第二个 SQL
  if (!$row)
    throw new PDOException('提示信息或执行动作');
  $pdo->commit();
} catch (PDOException $e) {
  $pdo->rollback(); // 执行失败,事务回滚
  exit($e->getMessage());
}
?>

在事务中的 SQL 语句,如果出现错误,那么所有的 SQL 都不执行。当所有 SQL 有无误的时候,才提交执行。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP制作静态网站的模板框架(三)
Oct 09 PHP
PHP4实际应用经验篇(5)
Oct 09 PHP
phpMyAdmin 安装教程全攻略
Mar 19 PHP
PHP如何将XML转成数组
Apr 04 PHP
golang与PHP输出excel示例
Jul 22 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 PHP
php中请求url的五种方法总结
Jul 13 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
php模式设计之观察者模式应用实例分析
Sep 25 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
PHP预定义接口――Iterator用法示例
Jun 05 PHP
PHP重载基础知识回顾
Sep 10 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 #PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 #PHP
PHP的PDO常用类库实例分析
Apr 07 #PHP
PHP安全下载文件的方法
Apr 07 #PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 #PHP
PHP使用token防止表单重复提交的方法
Apr 07 #PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 #PHP
You might like
用PHP和MySQL保存和输出图片
2006/10/09 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
Javascript事件实例详解
2013/11/06 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
jQuery事件详解
2017/02/23 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
python实现周期方波信号频谱图
2018/07/21 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
市场营销工作计划书
2014/05/06 职场文书
产品包装策划方案
2014/05/18 职场文书
体育专业求职信
2014/07/16 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android