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 图像处理类1
Jun 15 PHP
php while循环得到循环次数
Oct 26 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
thinkphp常见路径用法分析
Dec 02 PHP
php猜单词游戏
Sep 29 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 PHP
PHP开发API接口签名生成及验证操作示例
May 27 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 session 预定义数组
2009/03/16 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
js 匿名调用实现代码
2009/06/19 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
javascript中new关键字详解
2015/12/14 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
python中实现将多个print输出合成一个数组
2018/04/19 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
pandas中的series数据类型详解
2019/07/06 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
八年级数学教学反思
2014/01/31 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python