当前位置:Gxlcms > PHP教程 > 为什么给表加了读锁之后无法把数据查询出来?

为什么给表加了读锁之后无法把数据查询出来?

时间:2021-07-01 10:21:17 帮助过:70人阅读

mysql_query("LOCK TABLES tablename READ;");$result=mysql_query($sql, $conn);mysql_query("UNLOCK TABLES;");

注释掉第一条语句之后能够正常地把记录查询出来,但是一旦使用第一条语句就什么都查不出来了。


回复讨论(解决方案)

你都不让读了,如何能读出来?

你都不让读了,如何能读出来?
但是我加了写锁之后是可以写入的。加读锁不是只有本线程(可能不是这个词)和其他线程都可以读,谁都不可以写么?

请您认真阅读手册后,我们再讨论

请您认真阅读手册后,我们再讨论
我看不了大段的英文。

不是有中文手册吗

不是有中文手册吗
你说完我下载了一个中文的。
中文的我也没看出来什么,我看的是LOCK TABLES那个部分。我试了一下那个别名,还是不行。

不是有中文手册吗
我在MySQL的命令行界面下试了一下读锁,和 网上的那个一样,跟我想的也一样,但是用PHP就不行。

我了个草,我自己找到毛病了。我那个SELECT使用了两个表,但我只锁了一个表,如果只锁一个的话,此线程或者说会话只能读这一个表,其他的表都会拒绝读。这样SELECT自然查不出结果了。
真服了我自己了,我本来写了一个单独的简单的php程序来测试错误来着,这个简单的php程序居然也一直在错。可能是复制粘贴之后没有改参数之类的东西的原因吧。
等帖子沉了再结贴吧,希望别人不要像我这么粗心。

楼主 为什么我用这条语句却锁定不了表

人气教程排行