thinkphp 多表 事务(转)

本文介绍了一个批量更新数据库的实现方案,通过使用事务确保了多个表更新的一致性。该方案涉及用户表、奖项表和获取记录表的同步更新,并通过事务回滚机制保障数据完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. function makeAcquire($nUsers,$nAwards)  
  2.     {  
  3.         //更新数据库  
  4.         $tranDb = new Model();  
  5.         $tranDb->startTrans();  
  6.         for($i = 0; $i < sizeof($nUsers); $i++)  
  7.         {  
  8.             //更新表Acquire  
  9.             $flagAc = $tranDb->table('Acquire')->add($acquire);  
  10.             //更新表Users  
  11.             $where = array('u_id'=>$nUsers[$i]['u_id']);  
  12.             $flagU = $tranDb->table('Users')->where($where)->setInc('u_man_count',1);  
  13.             //更新表Award  
  14.             $where = array('a_id'=>$nAwards[$i]['a_id']);  
  15.             $flagA = $tranDb->table('Award')->where($where)->setDec('a_count',1);  
  16.         }  
  17.         if($flagAc && $flagU && $flagA)  
  18.         {  
  19.             $tranDb->commit();  
  20.         }  
  21.         else   
  22.         {  
  23.             $tranDb->rollback();  
  24.         }  
  25.     }  

转载于:https://www.cnblogs.com/xingmeng/archive/2013/05/14/3077425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值