我正在尝试更新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周围的引号,因为我认为这是正确的语法。我用引号尝试了它,它也不会那样工作。
有人可以帮我识别问题吗?谢谢!
答案 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'";