PHP并发,TP5处理小并发

PHP / 338人浏览 / 0人评论

- 注意事项

- 1.mysql 表引擎必须是InnoDB

- 2.必须在事务区块(BEGIN/COMMIT)中才能生效

- 3.FOR UPDATE 需要指定明确的主键才会行级锁,否则为表级锁

- 例:

- 1.select from user where id = 1 (行级锁)

- 2.select from user where id > 1 (表级锁)

public function insertdata(){ 
    
         Db::startTrans(); $info = Db::name('coupons')->where(['id'=>1])->lock(true)->find(); 
        
         if($info['num'] > 0){ 
            
             $status = '你得业务逻辑' ;
            
             if($status){
                 $res = 1;
                 //提交事务 Db::commit();
             }else{
                 //回滚事务
                $res = 0;
                Db::rollback();
             } 
        
             if($res == 1){
                 echo '成功';
             }else{
                echo '失败';
             } 
        
         }else{
             
             echo '数量不够'; 
             
         }
    }

感谢博主,喝杯咖啡!~

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我