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脚本的10个技巧(1)
Oct 09 PHP
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
php 文本文件的读取效率
Feb 10 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
php获取新浪微博数据API实例
Nov 12 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
PHP图片水印类的封装
Jul 06 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 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简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
南京某公司笔试题
2013/01/27 面试题
学习自我鉴定
2014/02/01 职场文书
中年人生感言
2014/02/04 职场文书
听课评语大全
2014/04/30 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python