thinkphp 多表 事务(转)

  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.     }  
posted @ 2013-05-14 11:06  幻星宇  阅读(465)  评论(0编辑  收藏  举报