2012-04-13 191 views
-1

當我運行這段代碼,它返回話題罰款...獲取SQL記錄

$query = mysql_query("SELECT topic 
FROM question 
WHERE id = '$id'"); 
    if(mysql_num_rows($query) > 0) { 
     $row = mysql_fetch_array($query) or die(mysql_error()); 
     $topic = $row['topic']; 
    } 

但是當我改變這一點,它不會運行在所有。爲什麼發生這種情況?

$query = mysql_query("SELECT topic, lock 
FROM question 
WHERE id = '$id'"); 
    if(mysql_num_rows($query) > 0) { 
     $row = mysql_fetch_array($query) or die(mysql_error()); 
     $topic = $row['topic']; 
     $lockedThread = $row['lock']; 
     echo "here: " . $lockedThread; 
    } 
+3

究竟是如何做的不跑?有沒有錯誤信息? – 2012-04-13 17:26:37

+0

此外,您正在爲查詢插入'$ id',而不是將其作爲安全參數傳遞。 – vol7ron 2012-04-13 17:28:13

+0

我有這個:error_reporting(1); – droidus 2012-04-13 17:28:21

回答

7

確保lock不是一個MySQL的關鍵字(保留字),你可以在字段列表BACKTICK它(`lock`):

SELECT `topic`, `lock` 
... 

MySQL 5.6 Reserved Words

+0

我不相信這是一個關鍵字。我如何確定? – droidus 2012-04-13 17:34:00

+0

哇!回覆工作!爲什麼? – droidus 2012-04-13 17:35:44

+0

http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html#table-reserved-words-5.6.5它是保留的 – vol7ron 2012-04-13 17:35:58