搜索
系统检测到您的用户名不符合规范:

TP6中for update和lock in share mode用法

浏览:1442 发布日期:2021年11月17日 分类:ThinkPHP6专区 关键字: lock(true) share mode thinkphp6
1.锁定进程如果采用的是lock(true),在该进程执行过程中(未完成),有任何其他更新操作都是无效的,直到锁定进程完成后才可继续执行。
2.锁定进程如果采用的是lock( 'lock in share mode'),在该进程执行过程中(未完成),有任何其他更新操作都是无效的、直到锁定进程完成后依然会报错锁定更新。 /**
* 锁定测试
*/
public function lock(){
set_time_limit(0);
//开启事务
Db::startTrans();
try{
//查询时锁定 关键行(该行不能再被其他修改) 'lock in share mode'
$rs = Member::where("username = 'veitool'")->lock(true)->find();
sleep(10);
Db::name('member')->where("username = 'veitool'")->update(['money' => '10']);
//提交事务
Db::commit();
return '成功!';
}catch(\Exception $e){
//回滚事务
Db::rollback();
return '失败:'.$e;
}
}

/**
* 其他更新
*/
public function locks(){
set_time_limit(0);
//$rs = Member::where("username = 'veitool'")->lock(true)->find();
Db::name('member')->where("username = 'veitool'")->inc('money', 8.60)->update();
return '成功!';
}
最佳答案
收藏
fulang167
积分:2411 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /