在PHP中使用UPDATE命令时出现问题

时间:2009-07-15 19:48:42

标签: php mysql

我在通过PHP更新我的qotwVote1a表的Vote1a字段时遇到了一些问题。你能不能看看代码,告诉我在这里做错了什么。

$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());
}

使用此代码我收到错误:

  

“执行查询时出错'UPDATE qotwVote1a SET Vote1a ='2',WHERE QuestionId ='57'AND MemberId ='zee'':您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册正确的语法在第3行“WHERE QuestionId ='57'和MemberId ='zee''附近使用”

此致 Zeeshan

3 个答案:

答案 0 :(得分:5)

$newVote之后有逗号。把它取下来,你会变得非常敏锐。

此外,您不需要在引号中包装数字,如果您的列是整数或浮点类型,则不要这样做。无论如何,这样做会导致那些转换成数字,所以这不是什么大问题。

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

答案 1 :(得分:0)

在你错误放置的SET子句之后的MySQL查询中有一个逗号。所以试试这个:

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

答案 2 :(得分:0)

看起来您缺少一些代码,因为提供的查询不是给出错误的查询。查询中的问题是在“Vote1a ='2'”语句之后的额外逗号。