欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

thinkphp 多表 事务详解

程序员文章站 2022-05-25 17:26:08
如下所示:复制代码 代码如下:function makeacquire($nusers,$nawards)    {  &...
如下所示:
复制代码 代码如下:

function makeacquire($nusers,$nawards)
    {
     //更新数据库
     $trandb = new model();
     $trandb->starttrans();
     for($i = 0; $i < sizeof($nusers); $i++)
     {
      //更新表acquire
      $flagac = $trandb->table('acquire')->add($acquire);
      //更新表users
      $where = array('u_id'=>$nusers[$i]['u_id']);
      $flagu = $trandb->table('users')->where($where)->setinc('u_man_count',1);
      //更新表award
      $where = array('a_id'=>$nawards[$i]['a_id']);
      $flaga = $trandb->table('award')->where($where)->setdec('a_count',1);
     }
     if($flagac && $flagu && $flaga)
     {
      $trandb->commit();
     }
     else
     {
      $trandb->rollback();
     }
    }