2012-07-21 87 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