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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
解析PHP的session过期设置
2013/06/29 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
用cssText批量修改样式
2009/08/29 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python进行数据提取的方法总结
2016/08/22 Python
简单的python后台管理程序
2017/04/13 Python
Python装饰器简单用法实例小结
2018/12/03 Python
Python shutil模块用法实例分析
2019/10/02 Python
python实现3D地图可视化
2020/03/25 Python
python实现canny边缘检测
2020/09/14 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
自荐书4要点
2014/01/25 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
升职自我推荐信范文
2015/03/25 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis