PDO中事务处理的具体介绍
事务由一系列查询和/或更新语句组成。 使用begin和start transaction启动事务,使用rollback回滚事务,使用commit提交事务。 启动一个事务后,可以有多个SQL查询或更新语句。 每一条SQL提交执行后,都应该有一句判断是否正确执行,以决定下一步是否要回滚。 如果全部执行正确,交易最终会被提交。 一旦事务回滚,数据库将保持事务启动前的状态。 就好像编辑过的文件没有被读取并退出php事务处理,但仍然保持了文件的原始状态。 因此,事务可以看作是原子操作,事务中的SQL要么全部执行,要么根本不执行。
前两篇文章《PDO中错误处理的方法1-errorCode()方法》、《PDO中错误处理的方法2-errorInfo()方法》我们介绍了PDO中处理错误的方式,所以下面详细介绍一下PDO中的事务处理~
PDO中也可以实现事务处理的功能,其应用方法如下:
(1) 启动事务——beginTransaction()方法。
beginTransaction() 方法会关闭手动提交(自动提交)模式,直到事务提交或回滚后才会恢复。
(2) 提交事务——commit()方法
commit()方法完成事务的提交操作php事务处理,成功则返回true,否则返回false。
(3)事务回滚——rollBack()方法
rollBack()方法执行事务回滚操作。
通过prepare()和execute()方法向数据库添加数据,并通过事务处理机制保证数据能够正确添加到数据库。 具体步骤如下:
创建一个php文件,首先定义数据库连接参数,创建try{...}catch{...}语句,在try{}语句中实例化PDO构造函数,完成与数据库的连接,传递beginTransaction ()方法启动事务,然后定义INSERT添加语句,通过$_POST[]方法获取表单提交的数据,通过prepare()和execute()方法将数据添加到数据库,完成事务提交通过commit(0方法进行操作,最后在catch{}语句中返回错误信息,并通过rollBack()方法执行事务的回滚操作,具体代码如下:
用户名: 密码: beginTransaction(); //开始事务 $query="insert into `user`(username,password) VALUES ('$name','$password')";//需要执行的sql语句 $res=$pdo->prepare($query);//准备查询语句 $res->execute(); //执行查询语句,并返回结果集 if($res->errorCode()){ echo "数据添加成功"; }else{ echo "数据添加失败"; } $pdo->commit(); //执行事务的提交操作 }catch (PDOException $e){ die("Error!:".$e->getMessage().'
'); $pdo -> rollBack(); //执行事务的回滚 } } ?>
登录复制
最终输出结果如下:
看完我们前面介绍的事务处理,是不是觉得很简单呢? 你可以联系我来巩固你所学的知识。 下一篇我们将继续介绍PDO中的存储过程。 详细内容请阅读《PDO中PDO存储过程的详细介绍》!