按1 PDO更新字段

时间:2012-05-06 20:35:41

标签: pdo

每次声明为true时,我都试图用1更新数据库中的字段。我不确定该怎么做。使用我的以下代码,我不确定这个问题(虽然很多谷歌搜索):

  1. 如何添加1现有字段值(vote = vote + 1)
  2. where语句与bindParam结合使用。
  3. 我没有收到任何错误消息,但它不起作用。我究竟做错了什么?

    我的代码看起来像这样($ id变量是正确的打印出来的,它有“正确”的值,$ dbh也设置了正确的连接):

            $stmt = $dbh->prepare("UPDATE rating SET vote = vote+1 WHERE rel_id_product = ':id'");
            $stmt->bindParam(':id', $id, PDO::PARAM_STR);
            $stmt->execute();
    

1 个答案:

答案 0 :(得分:1)

不要引用占位符。当需要“插入”您在查询中使用的值时,PDO将为您执行此操作:

... WHERE rel_id_product = :id
                           ^^^--- no quotes

此外,请var_dump($stmt->execute)看看你得到了什么。如果它是布尔值false,则查询失败。您还假设准备调用已成功并尝试执行它,无论如何。永远不要假设数据库操作已经成功。即使SQL语法是完美的,还有太多其他原因可以让事情变得无法检查。