我有一列想要更新2个mysql列之间的差异结果并计算受影响的行数。就我而言,它只能是1。这是我正在使用的mysql查询,它根本不一致

$connection->query("UPDATE items SET Quantity_Available = Quantity - Quantity_Committed WHERE Item_ID = '$itemid'");
if($count=$connection->affected_rows!=1){echo $count;die('makassi');}


如果我用一个数值替换Quantity_Committed,我将得到想要的,即代码继续。但是,如果我照原样保留它,我会得到正确的$ count数字(1),但是它也会因回显它不应该显示的“ makassi”而失败。

这是减去2个mysql列的不正确方法还是这是php mysqli API中的错误?
这真让我感到困惑!请帮助

最佳答案

这是您尝试做的不好的做法。如果数据库中的一列是从该列中已有的另一列派生的。然后创建数据库就是这样的冗余。所有数据库都应尽可能规范化。请阅读here有关数据标准化的信息。

无论您要做什么,都可以通过更好的方法来实现。喜欢

过滤记录

SELECT * FROM items WHERE Quantity - Quantity_Column > 5


或者,检索可用数量。

SELECT (Quantify - Quantity_Column) as `Quality_Available` from items

关于php - mysqli_affected_rows,mysql减去2列错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8665592/

10-11 05:14