我有一个工作的mysql_query:
mysql_query("update products set buyers = buyers+$qtd where id=$pid") or die (pgs_log("erro linha 70 >".mysql_error()));
然后我在它之后插入以下查询,它只执行第一个:
mysql_query("update products set pending = pending-$qtd where id=$pid") or die (pgs_log("erro linha 70 >".mysql_error()));
那么,我错过了什么吗?
答案 0 :(得分:1)
mysql_query("update `products`
set `pending` = `pending` - $qtd,
`buyers` = `buyers` + $qtd
where `id` = $pid")
or die (pgs_log("erro linha 70 >".mysql_error()));
答案 1 :(得分:1)
一些事情。首先,您不需要两个单独的查询。由于破折号,MySQL可能会混淆为认为您的值是列名:
mysql_query("
UPDATE `products`
SET `buyers` = `buyers` + $qtd,
`pending` = `pending` - $qtd
WHERE `id` = $pid") or die (pgs_log("erro linha 70 >".mysql_error()));
答案 2 :(得分:1)
如果您想仔细检查您的更新是否实际更新了数据,那么您应该调查mysql_affected_rows。你需要检查你的旧值是否与你的新值不同,否则你将没有受影响的行,这是一个无用的检查。
您没有在表和列引用周围使用正确的引号。这些应该用后面的刻度包围,并且可以组合,如下所示:
UPDATE
`products`
SET
`pending` = `pending` - $qtd,
`buyers` = `buyers` + $qtd
WHERE
`id` = $pid;