我正撞到墙上......这只是我代码的一小部分:
$stmt = $db->prepare("SELECT vote,id FROM votes WHERE post_id = ? AND user_id = ? ");
$stmt->bind_param('ii', $post_id, $user_id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($result, $vote_id);
$stmt->fetch();
$num_rows = $stmt->num_rows;
$stmt->close();
if ($num_rows>=1)
{
if ($result!==$vote)
{
$stmt = $db->prepare("UPDATE votes SET vote = ? WHERE id=?");
$stmt->bind_param('ii', $vote, $vote_id);
$stmt->execute();
$stmt->close();
}
else if ($result==$vote)
{
$stmt = $db->prepare("UPDATE votes SET vote = 0 WHERE id=?");
$stmt->bind_param('i', $vote_id);
$stmt->execute();
$stmt->close();
}
}
没有显示错误,脚本工作正常,直到它到达ELSE IF部分。虽然$ vote值与数据库中的相同,但它不会更新。
答案 0 :(得分:3)
!==
是strict comparison operator,此声明表示$result
不得相同(在类型和值上){{1 }}。你不需要那样具体。
$vote
你应该做的是:
if ($result!==$vote)