2012-07-21 85 views
0

验证码:使用WHERE在ENUM SQL语句类型断裂MYSQL_QUERY

 $query = "SELECT * FROM tweets WHERE read=n"; 
     $result = mysqli_query($mysqli,$query); 

     $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
     echo $row["from_user"], $row["text"]; 

上面的代码给了我这样的:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /index.php on line 16 

下面的代码不会:

 $query = "SELECT * FROM tweets"; 
     $result = mysqli_query($mysqli,$query); 

     $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
     echo $row["from_user"], $row["text"]; 

“读”字段是ENUM('y','n')。

+1

$ query =“SELECT * FROM tweets WHERE read ='n'”; – Markedagain 2012-07-21 03:38:26

+0

@Markedagain已经尝试过。仍然返回相同的错误。 – Chad 2012-07-21 03:40:36

回答

2

read是MySQL中的保留关键字。因为它是你的专栏的名字,所以在WHERE子句中加入反引号,并且应该解决问题:

SELECT * FROM tweets WHERE `read` = 'n'; 
+0

Eff。我知道这会很简单。谢谢您的帮助! – Chad 2012-07-21 03:54:51

+0

@cwscribner没问题!有时候,PHP/MySQL错误可能有点神秘和/或不具建设性。一种帮助解决问题的方法是调用printf(“Error:%s \ n”,mysqli_error($ mysqli));'在查询之后 - 它应该给出一个关于查询失败的提示(希望= P)。 – newfurniturey 2012-07-21 03:57:51