2011-07-05 68 views
0

我想要的是通過按索引號選擇行並更新該行的答案字段來更新我的數據庫表。有關更新表的MySQL錯誤

這是我的表單的選擇;它將索引ID設置爲選項值。還有一個名爲「答案」的textarea。

<select name="indexno" style="width:150px"> 
<option selected="selected">&nbsp;</option> 
<?php 
require('dbconnect.php'); 

$query = mysql_query("SELECT * FROM mytable WHERE answer = '' "); 

while($result = mysql_fetch_array($query)) 
    { 
    echo "<option " . "value='" . $result['index'] . "'>"; 
    echo $result['index']; 
    echo "</option>"; 
    } 

?> 
</select> 

這是PHP代碼:

$indexno = $_POST['indexno']; 
$answer = $_POST['answer']; 
$date = gmdate("Y-m-d\TH:i:s\Z"); 
$query = "UPDATE mytable 
      SET answerfield = '$answer', 
       date = '$date' 
      WHERE index = '$indexno'"; 

$link = mysql_query($query); 

但是,它不工作;錯誤消息是:

您在SQL語法中有錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 接近人指數=‘2’'在1號線

+0

是'index'一個整數列?你可以嘗試'$ indexno'而不是''$ indexno'' –

+0

@Kieren Johnstone是的它是整數。 – user552828

+0

...你試過我的建議嗎?接下來的問題,我的建議是否有影響?最後是下一個問題,它是否解決了這個問題? –

回答

3

嘗試

WHERE `index` = '$indexno'"; 
+1

啊,賓果。 '索引'將是一個保留字,需要轉義。 –

+0

@yi_H現在它的工作謝謝你。 – user552828

+0

也許'date'也是保留的,我不記得了,但最好不要使用這樣的字段名稱在第一位... –