多个mysql_query无法正常工作

时间:2011-05-24 17:45:15

标签: php mysql

我有一个工作的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())); 

那么,我错过了什么吗?

3 个答案:

答案 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;