以下是THINKPHP6模型查询锁代码的示例:
<?php
// 启动事务
Db::startTrans();
try {
// 更新数据
$result = Db::table('user')->where('id', 1)->update(['name' => 'test']);
// 加行级别排他锁
$user = Db::table('user')->where('id', 1)->lock(true)->find();
// 提交事务
Db::commit();
echo '操作成功';
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
echo '操作失败';
}
?>
以上示例代码中,先开启事务并通过`update()`方法更新了`user`表中`id`为1的数据的`name`字段为`test`,然后通过`lock()`方法给该行数据加了行级别的排他锁,并将其查出来赋值给`$user`变量。最后,如果操作失败,则回滚事务,否则提交事务并输出操作成功。
相关文章