PHP:MySQL:更新正在更新多行


PHP: MySQL: Update is Updating More than One Row

所以我正在尝试更新我的 2 个表:发票和Order_Table。我希望它更新每个表中的新数量和新价格,但仅适用于特定的 OrderID。我想出了这个:

$UpdateQuant = "UPDATE Order_Table SET Quantity = '$NewQuant' WHERE OrderID = '$OrderID' ";
$UpdateQuant = mysql_query($UpdateQuant);
$UpdatePrice = "UPDATE Order_Table SET TotalCost = '$NewPrice' WHERE OrderID = '$OrderID' ";
$UpdatePrice = mysql_query($UpdatePrice);

//Update Invoice Table
$UpdateQuant = "UPDATE Invoice SET Quantity = '$NewQuant' WHERE OrderID = '$OrderID' ";
$UpdateQuant = mysql_query($UpdateQuant);                   
$UpdatePrice = "UPDATE Invoice SET TotalCost = '$NewPrice' WHERE OrderID = '$OrderID' ";
$UpdatePrice = mysql_query($UpdatePrice);

但是,当我执行此操作时,它会更新每一行。我不明白为什么会发生这种情况,因为我正在使用 WHERE OrderID = '$OrderID'

执行 SQL 之前回显它,也许变量中没有您期望的某些内容。否则,更新的每条记录必须具有相同的 orderID。

此外,正如注释中指出的,只有字符串应该用引号封装,数字类型不应该有它们:

您还可以将运行的查询合并为一个查询,如下所示:

$UpdateQuant = "UPDATE Order_Table SET Quantity = $NewQuant, TotalCost = $NewPrice WHERE OrderID = $OrderID ";
$UpdateQuant = mysql_query($UpdateQuant);

它将前两个查询组合在一起,您也可以对底部两个查询执行相同的操作。