Используя PHP msqli, можно ли обновить две записи одним запросом?
Сначала я делаю SELECT, чтобы проверить, что $pay_user имеет достаточную валюту игры в его учетной записи, если он делает то я делаю следующее...
Мой запрос на обновление:
"UPDATE account SET money = money -". $money. "WHERE User_id =". $pay_user
"UPDATE account SET money = money +". $money. "WHERE User_id =". $recieve_user
Это транзакция, чтобы остановить грязное чтение.
Я надеялся сохранить запрос и назвать его одним... возможно ли это?
Поскольку два предложения where не совпадают, вы не можете объединить эти запросы в один оператор.
Вы можете пометить его как TRANSACTION, чтобы оба они выполнялись одновременно.
обратитесь к 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
Я рекомендую использовать хранимую процедуру для этого. это будет один вызов из php, и если он терпит неудачу в середине, SP должен выполнить откат.