2009-07-15 10 views
0

PHPを使用してqotwVote1aテーブルのVote1aフィールドを更新する際に問題があります。コードを見て、ここで間違っていることを教えてください。私はエラーを得た。このコード使用PHPでUPDATEコマンドを使用する際の問題

$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

SET句の後にMySQLクエリがありますが、それは間違っています。したがって、これを試してみてください:

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

提供されたクエリがエラーを示すクエリではないため、コードがありません。クエリの問題は、 "Vote1a = '2'"ステートメントの後に余分なカンマが付きます。