2011-07-05 6 views
0

원하는 것은 인덱스 번호로 행을 선택하고 해당 행의 대답 필드를 업데이트하여 데이터베이스 테이블을 업데이트하는 것입니다.테이블 업데이트에 대한 MySQL 오류

이것은 내 양식의 선택입니다. 그것은 인덱스 값을 옵션 값에 넣는다. 또한 "대답"이라는 이름의 텍스트 영역이 있습니다.

<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

아, 빙고. 'index'는 예약어이며 이스케이프해야합니다. –

+0

@yi_H 이제 감사합니다. – user552828

+0

아마도'date'도 예약되어 있습니다. 기억이 나지 않지만 처음에는이 같은 필드 이름을 사용하지 않는 것이 더 낫습니다 ... –

관련 문제