background image

PHP 框架:thinkphp 多表、事务详解

本文旨在为大家详细介绍 thinkphp 多表、事务,有兴趣的可以参考下
如下所示:
代码如下:
 

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();

}
}