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();
}
}
复制代码 代码如下:
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();
}
}