MySQL表行不会UPDATE

时间:2012-11-27 02:14:21

标签: php mysql post mysqli sql-update

我正在尝试更新MySQL表中的一行。该列是“投票”列,当有人提交HTML表单时,会有一个隐藏的输入,其值为“1”,可以提交和发布。这是我用来尝试更新投票计数的代码:

if(isset($_POST['image_id']) && isset($_POST['vote'])){
    $image_id = $mysqli->real_escape_string($_POST['image_id']);
    $vote = $mysqli->real_escape_string($_POST['vote']);

    $sql_users_vote = "SELECT * FROM users WHERE id='$image_id'";
    $result_users_vote = $mysqli->query($sql_users_vote);
    $row_vote = mysqli_fetch_array($result_users_vote);
    $votes_count = $row_vote['votes'];
    $new_votes = $votes_count + $vote;

    $sql_vote = "UPDATE users WHERE id='$image_id' SET votes=$new_votes";
   $result_vote = $mysqli->query($sql_vote);
 }

我已经回显了变量直到$ sql_vote和$ image_id,$ vote,$ votes_count和$ new_votes都回显了正确的值。我猜测UPDATE语法中存在问题。我一遍又一遍地检查,但似乎找不到任何东西。我知道在UPDATE中我没有$ new_votes周围的引号,因为我认为这是正确的语法。我用引号尝试了它,它也不会那样工作。

有人可以帮我识别问题吗?谢谢!

2 个答案:

答案 0 :(得分:3)

SET不在WHERE之前吗?

$sql_vote = "UPDATE users SET votes = $new_votes WHERE id = '$image_id'"

或者没关系?

答案 1 :(得分:1)

$sql_vote = "UPDATE users SET votes=$new_votes WHERE id='$image_id'";