mysql_query("LOCK TABLES tablename READ;");
$result=mysql_query($sql, $conn);
mysql_query("UNLOCK TABLES;");
注释掉第一条语句之后能够正常地把记录查询出来,但是一旦使用第一条语句就什么都查不出来了。

解决方案 »

  1.   

    我自己解决了:
    http://bbs.csdn.net/topics/390443435
      

  2.   

    不应该啊  加了读锁  本进程和别的进程都不应该阻塞你去数据库show processlist看看状态
      

  3.   

    是我没把所有参与SELECT的表全锁上,因为某个参与SELECT没有锁上,所以这个表拒绝读了,最终导致整个SELECT没有结果。应该是这样。加了读锁之后没加读锁的表全部拒绝读,这样的规则总感觉怪怪的。
      

  4.   

    我基本是通过用PHP的语句把MySQL的错误提示显示出来的方法发现错误的。之前懒一直没处理错误信息的输出,导致出了问题都忘了显示错误提示。真是个教训。
      

  5.   

    A session that requires locks must acquire all the locks that it needs in a single LOCK TABLES statement. While the locks thus obtained are held, the session can access only the locked tables. For example