2009-07-15 2 views
0

У меня возникла проблема с обновлением поля Vote1a таблицы qotwVote1a через PHP. Не могли бы вы взглянуть на код и сказать мне, что я делаю неправильно здесь.Проблема с использованием команды UPDATE в PHP

$result = mysql_query("SELECT * FROM qotwVote1a WHERE QuestionId='".$questionId."' AND MemberId='".$id."'"); 

    while($row = mysql_fetch_array($result)) 
    { 
     $originalVote=$row['Vote1a']; 
     $newVote=$originalVote + $vote; 
     //echo ($newVote); 
    } 

$sql = <<<END 
UPDATE qotwVote1a 
SET Vote1a = '$newVote', 
WHERE QuestionId = '$questionId' AND MemberId = '$id' 
END; 

mysql_query($sql); 
if (mysql_error()) { 
    die("Error executing query '$sql': " . mysql_error()); 
} 

Используя этот код, который я получил ошибку:

"Error executing query 'UPDATE qotwVote1a SET Vote1a = '2', WHERE QuestionId = '57' AND MemberId = 'zee'': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE QuestionId = '57' AND MemberId = 'zee'' at line 3"

С уважением Zeeshan

ответ

5

У вас есть запятая после $newVote. Удалите его, и вы будете сильными.

Кроме того, вам не нужно обматывать номера в кавычках и не делать этого, если ваш столбец является целым или плавающим. В любом случае, это просто приводит к тому, что они преобразуются в числа, так что это не имеет большого значения.

UPDATE qotwVote1a 
SET Vote1a = '$newVote' 
WHERE QuestionId = '$questionId' AND MemberId = '$id' 
+0

спасибо большое. он работает сейчас –

0

Там есть запятая в вас MySQL запрос после пункта SET, что это неуместно. Так что попробуйте это:

$sql = <<<END 
UPDATE qotwVote1a 
SET Vote1a = '$newVote' 
WHERE QuestionId = '$questionId' AND MemberId = '$id' 
END; 
0

Похоже, что вам не хватает кода, так как запрос не является запросом, дающим ошибку. Проблема в запросе - дополнительная запятая после утверждения «Vote1a = '2».

Смежные вопросы