仅当用户名与创建条目 PDO 的用户相同时才从 table 更新条目
Updating an entry from a table ONLY if the username is same as the user that created the entry PDO
太给一些上下文。我正在创建一个页面,用户可以在其中发表评论。我希望能够更改 table 以便如果用户想要更改/更新他们创建的评论,他们可以使用相同的表单 - 前提是用户名与评论留下的用户名相同。然后我希望覆盖评论中的所有旧数据。
这是我用来插入详细信息的查询:
$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 子句,但它没有在数据库中输入任何内容,也没有错误。
我建议查找简单的 SQL 教程以了解更多信息,但您需要的是同时检查用户和 book_id 字段的条件。您可以通过指定两个条件来做到这一点:
... WHERE [condition1] AND [condition2] ...
例如:
SELECT column1, column2 FROM table WHERE column3 = :value1 AND column4 = :value;
不过,我还是强烈建议您查看基本概念,这可能会在以后为您节省很多时间。
太给一些上下文。我正在创建一个页面,用户可以在其中发表评论。我希望能够更改 table 以便如果用户想要更改/更新他们创建的评论,他们可以使用相同的表单 - 前提是用户名与评论留下的用户名相同。然后我希望覆盖评论中的所有旧数据。
这是我用来插入详细信息的查询:
$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 子句,但它没有在数据库中输入任何内容,也没有错误。
我建议查找简单的 SQL 教程以了解更多信息,但您需要的是同时检查用户和 book_id 字段的条件。您可以通过指定两个条件来做到这一点:
... WHERE [condition1] AND [condition2] ...
例如:
SELECT column1, column2 FROM table WHERE column3 = :value1 AND column4 = :value;
不过,我还是强烈建议您查看基本概念,这可能会在以后为您节省很多时间。