仅当用户名与创建条目PDO的用户相同时才更新表中的条目

时间:2015-04-21 11:33:02

标签: php mysql forms pdo

给出一些背景信息。我正在创建一个用户可以留下评论的页面。我希望能够更改表格,以便如果用户想要更改/更新他们创建的评论,他们可以使用相同的表单 - 前提是用户名与评论留下的用户名相同。然后,我希望覆盖审核中的所有旧数据。

以下是我用于插入详细信息的查询:

$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子句,但它在数据库中没有输入任何内容,也没有错误。

1 个答案:

答案 0 :(得分:1)

我建议查找简单的SQL教程以了解更多信息,但您想要的是检查用户和book_id字段的条件。您可以通过指定以下两个条件来执行此操作:

... WHERE [condition1] AND [condition2] ...

例如:

SELECT column1, column2 FROM table WHERE column3 = :value1 AND column4 = :value;

我认真地建议你查阅基本概念,但这可能会为你节省很多时间。