使用mysqli更新数据库中的行的问题

时间:2019-02-09 16:21:08

标签: php sql

有一个名为Book的表,该代码应该找到一个特定的记录并将其num编辑为num-1,但只能将num编辑为-1。

$sql = 'SELECT num FROM Book
    WHERE bid="'.$_SESSION["sails bid{$i}"].'"';
if (mysqli_query($conn, $sql)) {
    $row = mysqli_fetch_array($query);
    $numbers=(int)$row['num']-1;
    $sql='UPDATE Book
    SET num="'.$numbers.'"
    WHERE bid="'.$_SESSION["sails bid{$i}"].'"';
    if (mysqli_query($conn, $sql)) {
        ...
    }
}

1 个答案:

答案 0 :(得分:2)

一方面,您使这一过程变得过于复杂。您无需选择PHP,执行数学运算然后进行更新。可以在SQL中执行简单的算术运算。例如:

UPDATE Book SET num = num - 1 WHERE bid = ?

只需绑定您的bid值(最好是using query parameters而不是您当前正在使用的字符串连接),并且只需要执行一个UPDATE即可,而不必执行所有代码现在。