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 相关文章推荐
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
Oct 31 PHP
理解和运用PHP中的多态性[译]
Aug 02 PHP
用php解析html的实现代码
Aug 08 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP数组函数array_multisort()用法实例分析
Apr 02 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 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
解决CodeIgniter伪静态失效
2014/06/09 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
js 幻灯片的实现
2011/12/06 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
Java中compareTo和compare的区别
2016/04/12 面试题
城市轨道专业个人求职信范文
2013/09/23 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
实习单位鉴定评语
2014/04/26 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
甜品店创业计划书
2014/08/14 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2014年个人委托书范本
2014/10/13 职场文书
2014年班组长工作总结
2014/11/20 职场文书
停电调休通知
2015/04/16 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis