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项目的方法
Oct 09 PHP
一个简单的自动发送邮件系统(三)
Oct 09 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
Nov 18 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
php实现数据库的增删改查
Feb 26 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 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 mcrypt可逆加密算法分析
2011/07/19 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
php 猴子摘桃的算法
2017/06/20 PHP
xml和web特殊字符
2009/04/28 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python 获取图片分辨率的方法
2019/01/08 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
.NET面试问题集
2015/12/08 面试题
护士演讲稿范文
2014/01/05 职场文书
创业计划书如何吸引他人眼球
2014/01/10 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
服务理念口号
2014/06/11 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
叶问观后感
2015/06/15 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
导游词之峨眉山
2019/12/16 职场文书
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis