首页 > 其他 > 详细

TP5 事务处理加锁

时间:2021-04-17 11:10:32      阅读:17      评论:0      收藏:0      [点我收藏+]
技术分享图片
<?php

namespace app\test\controller;

use think\Controller;

use think\Db;

class Index extends Controller
{
    
    public function index()
    {
        $time = date(H:i:s);
        
        // 开启事务
        Db::startTrans();
        
        db(sms)->lock(true)->select();//加锁
        
        $update1 = db(sms)->where([id => 1])->update([email => 1]);
        
        $update2 = db(sms)->where([id => 2])->update([email => 2]);
        
        $update3 = db(sms)->where([id => 3])->update([email => 3]);
        
        sleep(10);
        
        if($update1 && $update2 && $update3){
            Db::commit();//提交
            return $time._lock_true_.date(H:i:s).---.$update1.---.$update2.---.$update3;
        }else{
            Db::rollback();//回滚
            return $time._lock_false_.date(H:i:s).---.$update1.---.$update2.---.$update3;
        }
        
    }
    
    


}
View Code

打开两个网页同时刷新,效果如下:

技术分享图片

 

 数据库:

技术分享图片

 

 

 

 

 

 

_______________

 

TP5 事务处理加锁

原文:https://www.cnblogs.com/cuizhenyu/p/14669464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!