所以我正在尝试更新我的 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);
它将前两个查询组合在一起,您也可以对底部两个查询执行相同的操作。