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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的事务处理---PDO实现相关的知识,希望对你有一定的参考价值。

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

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

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

看代码也许更好理解

 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实现的主要内容,如果未能解决你的问题,请参考以下文章

PDO如何完成事务操作

PDO事务处理

PHP中的PDO操作学习预处理语句及事务

PHP中的PDO操作学习预处理语句及事务

PHP操作PDO预处理以及事务

PHP操作PDO预处理以及事务