【发布时间】:2015-06-28 13:04:31
【问题描述】:
也给出一些上下文。我正在创建一个用户可以留下评论的页面。我希望能够更改表格,以便如果用户想要更改/更新他们创建的评论,他们可以使用相同的表单 - 前提是用户名与评论留下的用户名相同。然后,我希望覆盖评论中的所有旧数据。
这是我用来插入详细信息的查询:
$sql = "UPDATE reviews SET book_id = :book_id, user = :user,
review = :review, rating = :rating WHERE user = '.$username'";
$query = $dbh->prepare($sql);
$query->execute(array(
':book_id' => $book,
':user' => $username,
':review' => $review,
':rating' => $rating
));
echo "You updated your review! ";
}else{
echo "error occured: ".$error;
exit();
}
输出:我设法用我输入的输入更新了每个条目,所以现在所有条目都是相同的。这不是我想要的,我想更新特定书籍上的条目 - 如果用户名匹配(与创建评论的人相同)再次。谁能告诉我如何获得欲望输出?提前致谢。
编辑:我添加了一个 where 子句,但它在数据库中没有输入任何内容,也没有错误。
【问题讨论】:
-
然后使用您的主键更新该特定行
-
为什么不简单地使用 WHERE 子句在 book_id 和 username 上添加约束?我还建议您阅读一些 SQL 基础知识或学习教程(谷歌搜索出现了 this one,乍一看看起来相当不错)。