用php锁定mysql表

前端之家收集整理的这篇文章主要介绍了用php锁定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_ = "select * from test1";
$result = MysqL_query($query_);

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

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

如何使这项工作?

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

有关读锁类型的信息:

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

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

$query_ = "lock tables test1 as test11 write";
原文链接:https://www.f2er.com/mysql/433897.html

猜你在找的MySQL相关文章