本文实例讲述了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)
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。
新闻热点
疑难解答