加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 数据库 > MySql > 正文

用php锁定mysql表

发布时间:2021-01-24 12:26:37 所属栏目:MySql 来源:互联网
导读:脚本1.$query_ = lock tables test1 as test11 write; mysql_query($query); $query_ = select * from test11; sleep(20); $query_ = unlock tables; mysql_query($query_); 脚本2.$query_ =

脚本1.

$query_ = "lock tables test1 as test11 write";
mysql_query($query);
$query_ = "select * from test11";
sleep(20);
$query_ = "unlock tables";
mysql_query($query_);

脚本2.

$query_ = "select * from test1";
$result = mysql_query($query_);

问题是如果我在运行第一个脚本时运行第二个脚本.表未锁定.我可以从中读取任何数据.

我需要它被锁定并返回错误.

如何使这项工作?

最佳答案 你被读取用$query_ =“锁定表test1作为test11读取”来锁定表; – 这意味着其他查询仍然可以读取它而没有任何问题(相关link – 向下滚动到关于锁类型的部分) :

有关读锁类型的信息:

>持有锁的会话可以读取表(但不能写入).
>多个会话可以同时获取表的READ锁.
>其他会话可以在不明确获取READ锁的情况下读取表.

如果你想停止其他任何事情,那么你需要使用写锁,如下所示:

$query_ = "lock tables test1 as test11 write";

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读