thinkphp 多表 事务详解_PHP教程
程序员文章站
2022-05-31 16:11:38
...
如下所示:
function makeAcquire($nUsers,$nAwards)
{
//更新数据库
$tranDb = new Model();
$tranDb->startTrans();
for($i = 0; $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 {
//更新表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();
}
}
上一篇: foreach使用_PHP教程
推荐阅读
-
ThinkPHP登录功能的实现方法,thinkphp登录实现_PHP教程
-
php教程之配置文件详解(四)
-
php下pdo的mysql事务处理用法实例,pdomysql_PHP教程
-
php PDO 使用方法详解_PHP教程
-
PHP中MVC框架之文件入口实例详解_PHP教程
-
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析_PHP教程
-
采用thinkphp自带方法生成静态html文件详解_PHP
-
PHP和Java强强联合 PHP与Java集成开发详解(1)_PHP教程
-
浅析THINKPHP的addAll支持的最大数据量,thinkphpaddall_PHP教程
-
php缓冲 output_buffering的使用详解_PHP教程