全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php的PDO事务处理机制实例分析

本文实例讲述了php的PDO事务处理机制。分享给大家供大家参考,具体如下:

事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行,并且在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操作. 如果执行成功, 那么这一系列操作都会永久有效. 事务很好的解决了在操作数据库的时候不同步的问题. 同时, 通过事务去执行大数据量的时候, 执行效率可以提高很多很多.

在PDO中同样可以实现事物处理的功能

1. 开启事物:beginTransaction()方法

beginTransaction()方法将关闭自动提交(autocommit)模式,直到事物被提交或者回滚以后才恢复

2. 提交事物:commit()方法

commit()方法完成事物的提交操作,成功则返回true,否则返回false。

3. 事物回滚:rollBack()方法

rollBack()方法执行事物的回滚操作。

例如:

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try {
 $pdo = new PDO($dsn, $user, $pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
 $pdo->beginTransaction();//开启事物
 $query = "insert into user (username,password) values('admin','123456')";//需要执行的sql语句
 $res = $pdo->prepare($query);
 if ($res->execute()) {
  echo "数据添加成功";
 }else{
  echo "数据添加失败";
 }
 $pdo->commit();//执行事物的提交操作
}catch(PDOException $e){
 die("Error!: ".$e->getMessage().'<br>');
 $pdo->rollBack();//执行事物的回滚操作
}

补充:

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单 元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

相关属性:

① 原子性(Atomic)(Atomicity)

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。

② 一致性(Consistent)(Consistency)

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数 据结构(如 B 树索引或双向链表)都必须是正确的。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转 帐的应用程序时,应避免在转帐过程中任意移动小数点。

③ 隔离性(Insulation)(Isolation)

由并发事务所作的修 改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不 会查看中间状态的数据。这称为隔离性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化 时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务 数,所以一些应用程序降低隔离级别以换取更大的吞吐量。

④ 持久性(Duration)(Durability)

事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# php  # PDO  # 事务处理  # PHP5中使用PDO连接数据库的方法  # PHP中PDO连接数据库中各种DNS设置方法小结  # ThinkPHP框架基于PDO方式连接数据库操作示例  # PHP实现的pdo连接数据库并插入数据功能简单示例  # PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】  # php中在PDO中使用事务(Transaction)  # php下pdo的mysql事务处理用法实例  # php使用PDO事务配合表格读取大量数据插入操作实现方法  # PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】  # php PDO实现的事务回滚示例  # php pdo连接数据库操作示例  # 应用程序  # 程序设计  # 所作  # 数据库中  # 结束时  # 过程中  # 操作技巧  # 这一  # 很好  # 让你  # 都必须  # 都不  # 相关内容  # 在此  # 是指  # 更大  # 感兴趣  # 也将  # 给大家 


相关文章: 上海网站制作网站建设公司,建筑电工证网上查询系统入口?  深入理解Android中的xmlns:tools属性  如何通过虚拟主机空间快速建站?  如何在腾讯云免费申请建站?  如何彻底删除建站之星生成的Banner?  建站主机选购指南与交易推荐:核心配置解析  ,网页ppt怎么弄成自己的ppt?  如何通过多用户协作模板快速搭建高效企业网站?  制作网站公司那家好,网络公司是做什么的?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  教学网站制作软件,学习*后期制作的网站有哪些?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  Android使用GridView实现日历的简单功能  建站之星代理商如何保障技术支持与售后服务?  建站之星CMS五站合一模板配置与SEO优化指南  h5网站制作工具有哪些,h5页面制作工具有哪些?  建站之星会员如何解锁更多建站功能?  如何在万网自助建站平台快速创建网站?  建站之星展会模版如何一键下载生成?  建站之星如何实现五合一智能建站与营销推广?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  *服务器网站为何频现安全漏洞?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  宝塔建站无法访问?如何排查配置与端口问题?  网站代码制作软件有哪些,如何生成自己网站的代码?  如何快速搭建高效香港服务器网站?  建站主机如何选?高性价比方案全解析  香港服务器网站卡顿?如何解决网络延迟与负载问题?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何破解联通资金短缺导致的基站建设难题?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何在建站主机中优化服务器配置?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  如何高效利用200m空间完成建站?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  网站制作公司,橙子建站是合法的吗?  如何在云指建站中生成FTP站点?  网站制作服务平台,有什么网站可以发布本地服务信息?  香港服务器如何优化才能显著提升网站加载速度?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星安装步骤有哪些常见问题?  制作企业网站建设方案,怎样建设一个公司网站?  Swift中循环语句中的转移语句 break 和 continue  网站制作公司广州有几家,广州尚艺美发学校网站是多少? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。