码迷,mamicode.com
首页 > 数据库 > 详细

数据库的事务处理---PDO实现

时间:2017-09-19 14:56:21      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:from   name   one   exception   证明   mysq   llb   增加   try   

事务处理用一句简单的术语称为“原子操作",即一件事情,要么全部完成,要么一个也别完成;有一种一荣俱荣,一损俱损的感觉。

最常用的就是在交易过程中,比如在网络中,甲方付费给乙方,钱确认付款,但是乙方并未确认收款,那么,甲方的账户并不会减少,乙方的账户也并不会增加。

只有当甲方确认付款,乙方确认收款,两个步骤都完成,并且不出现错误的时候,双方的账户才会改变

看代码也许更好理解

 1 <?php
 2     try{
 3         $pdo=new PDO("mysql:host=localhost;dbname=test","root","root");
 4         $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 5 
 6         $pdo->beginTransaction();//开始一个事务
 7 
 8         //操作一
 9         $num_1=$pdo->exec("delete from test_pdo where id=2");
10         if($num_1<=0){
11             throw new PDOException("action one is failed");
12         }
13 
14         //操作二
15         $num_2=$pdo->exec("delete from test_pdo where id=3");
16         if($num_2<=0){
17             throw new PDOException("action two is failed");
18         }
19 
20         //执行到此处,证明来两个操作都成功了,可以提交
21         $pdo->commit();
22         echo "all action is success\n";
23     } catch (PDOException $e){
24         //如果抛出异常,则证明至少有一个操作未完成,于是rollback,取消已经完成的操作
25         $pdo->rollback();
26         echo $e->getMessage();
27     }

这只是一个最简单的事务处理,如果能明白这个代码,相信你已经对事务处理有一定理解了

 

数据库的事务处理---PDO实现

标签:from   name   one   exception   证明   mysq   llb   增加   try   

原文地址:http://www.cnblogs.com/-beyond/p/7551177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!