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读取ACCESS数据到MYSQL的代码
May 11 PHP
php的大小写敏感问题整理
Dec 29 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
解析php扩展php_curl.dll不加载的解决方法
Jun 26 PHP
CURL状态码列表(详细)
Jun 27 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
destoon数据库表说明汇总
Jul 15 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
Mar 05 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP开发文件系统实例讲解
2006/10/09 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
ejs v9 javascript模板系统
2012/03/21 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
vue中本地静态图片路径写法
2018/03/06 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
优秀干部获奖感言
2014/01/31 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
档案接收函格式
2015/01/30 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android