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 相关文章推荐
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
PHP无限分类(树形类)的深入分析
Jun 02 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
PHP中的一些常用函数收集
May 26 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
Oct 28 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
php中bind_param()函数用法分析
Mar 28 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
php扩展开发入门demo示例
2019/09/23 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
Python解析微信dat文件的方法
2020/11/30 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
档案管理员岗位职责
2013/12/01 职场文书
高二英语教学反思
2014/01/19 职场文书
幼儿老师求职信
2014/06/30 职场文书
民族精神月活动总结
2014/08/28 职场文书
个人求职信格式范文
2015/03/20 职场文书
新学期主题班会
2015/08/17 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS