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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
中英文字符串翻转函数
Dec 09 PHP
PHP 编程安全性小结
Jan 08 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
php基础教程
Aug 26 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
PHP代码加密的方法总结
Mar 13 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python正则分组的应用
2013/11/10 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
聊聊Python中的pypy
2018/01/12 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
python3中property使用方法详解
2019/04/23 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
办公室助理岗位职责
2013/12/25 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
稽核岗位职责范本
2015/04/13 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python