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

原创
2016-06-23 14:25:55 1074浏览

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

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

回复讨论(解决方案)

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

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

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

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

不是有中文手册吗

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

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

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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。