mysql - 一次更新两条记录

时间:2009-12-09 10:08:36

标签: php mysql mysqli

使用PHP的msqli可以用一个查询更新两个记录吗?

首先我做一个SELECT来检查$ pay_user在他的帐户中是否有足够的游戏币,如果他这样做,那么我会做以下事情......

我的更新查询是:

“UPDATE帐户SET money = money - ”。$ money。“WHERE User_id =”。$ pay_user

“UPDATE帐户SET money = money +”。$ money。“WHERE User_id =”。$ recieve_user

停止脏读的是事务性的。

我希望保存一个查询并将其称为一个......是否可能?

3 个答案:

答案 0 :(得分:3)

由于两个where子句不相同,因此无法将这些查询合并为一个语句。

您可以将其标记为TRANSACTION,以便它们同时执行。

答案 1 :(得分:2)

参考http://dev.mysql.com/doc/refman/5.0/en/update.html

代码示例

update account a1, account a2 
set a1.money = a1.money - $money , a2.money = a2.money + $money
where a1.user_id = $pay_user and a2.user_id = $recv_user

答案 2 :(得分:1)

我建议使用存储过程来执行此操作。它将是来自php的一次调用,如果它在中间失败,SP应该发出回滚。