Home >Backend Development >PHP Tutorial >为什么给表加了读锁之后无法把数据查询出来?

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

WBOY
WBOYOriginal
2016-06-23 14:25:551410browse

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

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


回复讨论(解决方案)

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

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

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

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

不是有中文手册吗

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

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

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn