Php 使用mysqli更新数据库中的行时出现问题

Php 使用mysqli更新数据库中的行时出现问题,php,sql,Php,Sql,有一个名为Book的表,这段代码应该找到一个特定的记录并将其num-to-num-1编辑,但它只将num-to-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; $sq

有一个名为Book的表,这段代码应该找到一个特定的记录并将其num-to-num-1编辑,但它只将num-to-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)) {
        ...
    }
}

首先,你已经把这个复杂化了。您不需要选择进入PHP,执行数学运算,然后更新。简单的算法可以在SQL中执行。例如:

UPDATE Book SET num = num - 1 WHERE bid = ?
只需绑定您的
bid
值(最好不要使用当前使用的字符串串联),您只需执行一个
UPDATE
,而不要执行您现在使用的所有代码