【问题标题】:Increment my variable in a database with UPDATE in PHP在 PHP 中使用 UPDATE 增加我在数据库中的变量
【发布时间】:2020-04-14 11:06:28
【问题描述】:

我从我的数据库中获取了变量“stock”。我想用这段代码更新我的变量:

$stock = $_POST['stock']

$nom = 'salade';
$req=("UPDATE ingredients SET stock=$stock+1 WHERE nom = :nom;");
 $stmt = $db->prepare($req);

    // execute the query
    $stmt->execute(array('nom'=>$nom));

但问题是我的变量增加了 8 而不是 1,因为我有 8 个元素(沙拉、西红柿、面包等)。我想用 UPDATE 加 1。

感谢阅读我!

【问题讨论】:

  • SET stock=stock + $stock
  • 为什么不像$stock = $_POST['stock'] + 1;那样在更新前递增
  • 使用准备好的语句,但仍然直接包含未经处理的用户输入...从而使这对 sql 注入开放。
  • 您不应该从帖子值中设置值。让数据库自己增加。查看@Gilkan 的回答

标签: php sql database updates increment


【解决方案1】:

考虑到您所说的只是每行增加 1 WHERE nom = :nom (我猜您的实际代码没有错 $ 而不是 : 或者它甚至不会像您一样“增加 8”说你已经实现了......请记住对你的问题进行编辑):

UPDATE
    ingredients
SET
    stock=stock+1
WHERE
    nom = :nom;

只需选择您已有的并添加 1 stock=stock+1

【讨论】:

    【解决方案2】:

    你可以像这样在文本查询中使用变量。

    $req= ("UPDATE ingredients SET stock='".($stock+1)."' WHERE nom = :nom;");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      相关资源
      最近更新 更多