数据库的事务处理---PDO实现
2017-09-19 12:11
176 查看
事务处理用一句简单的术语称为“原子操作",即一件事情,要么全部完成,要么一个也别完成;有一种一荣俱荣,一损俱损的感觉。
最常用的就是在交易过程中,比如在网络中,甲方付费给乙方,钱确认付款,但是乙方并未确认收款,那么,甲方的账户并不会减少,乙方的账户也并不会增加。
只有当甲方确认付款,乙方确认收款,两个步骤都完成,并且不出现错误的时候,双方的账户才会改变
看代码也许更好理解
这只是一个最简单的事务处理,如果能明白这个代码,相信你已经对事务处理有一定理解了
最常用的就是在交易过程中,比如在网络中,甲方付费给乙方,钱确认付款,但是乙方并未确认收款,那么,甲方的账户并不会减少,乙方的账户也并不会增加。
只有当甲方确认付款,乙方确认收款,两个步骤都完成,并且不出现错误的时候,双方的账户才会改变
看代码也许更好理解
1 <?php 2 try{ 3 $pdo=new PDO("mysql:host=localhost;dbname=test","root","root"); 4 5 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 6 $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);///非常重要,不要忘记关闭自动提交 7 8 $pdo->beginTransaction();//开始一个事务 9 10 //操作一 11 $num_1=$pdo->exec("delete from test_pdo where id=2"); 12 if($num_1<=0){ 13 throw new PDOException("action one is failed"); 14 } 15 16 //操作二 17 $num_2=$pdo->exec("delete from test_pdo where id=3"); 18 if($num_2<=0){ 19 throw new PDOException("action two is failed"); 20 } 21 22 //执行到此处,证明来两个操作都成功了,可以提交 23 $pdo->commit(); 24 echo "all action is success\n"; 25 } catch (PDOException $e){ 26 //如果抛出异常,则证明至少有一个操作未完成,于是rollback,取消已经完成的操作 27 $pdo->rollback(); 28 echo $e->getMessage(); 29 }
这只是一个最简单的事务处理,如果能明白这个代码,相信你已经对事务处理有一定理解了
相关文章推荐
- PHP使用pdo实现事务处理操作示例
- Java中数据库事务处理的实现
- Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- C#实现数据库事务处理示例代码
- Java中数据库事务处理的实现-JSP教程,Java技巧及代码
- C#实现数据库事务处理示例代码
- ASP实现数据库事务处理的方法
- C#实现数据库事务处理的简单示例代码
- php实现基于pdo的事务处理方法示例
- 【转载】Java中数据库事务处理的实现
- C#实现数据库事务处理示例代码
- ASP实现数据库事务处理的方法
- C#实现数据库事务处理的简单示例代码
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- Java中数据库事务处理的实现
- 删除信息[置顶] Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- J2EE -- 数据库事务处理的实现
- 数据库事务(三):构建自己的TransactionManager实现事务处理
- ASP实现数据库事务处理的方法
- ThinkPHP实现事务回滚示例代码(附加:PDO的事务处理)