0

memberこのテーブル内で呼び出されるデータベース内のテーブルは、「personID balance」フィールド&です。

ユーザー 1 の残高が 20.00 で、ユーザー 2 に 10.00 を送金したい場合、ユーザー 1 の残高を減らしてユーザー 2 の残高を更新する最善の方法は何ですか?

どんな助け/アドバイスも素晴らしいでしょう!

前もって感謝します

アップデート

コード:

 $accountfrom=$_POST[accountfrom];
 $accountto=$_POST[accountto];
 $amount=$_POST[amount]; 
$con = mysql_connect("localhost","cl49-XXX","XXX");
if (!$con) 
  {
   die('Could not connect: ' . mysql_error());
   }

mysql_select_db("cl49-XXX", $con)or die( "Unable to select database");


$result = mysql_query("UPDATE member
SET balance = IF(personID = $acountfrom, balance-$amount, balance+$amount)
WHERE personID IN ($accountfrom, $accountto)")
 or die(mysql_error());

結果:

'SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

4

1 に答える 1

3
UPDATE member
SET balance = IF(personID = 1, balance-10, balance+10)
WHERE personID IN (1, 2)

送金を送金者の残高に制限するには:

UPDATE member m1
CROSS JOIN (SELECT LEAST(10, balance) transfer
      FROM member
      WHERE personID = 1) m2
SET m1.balance = IF(personID = 1, balance - transfer, balance + transfer)
WHERE personID in (1, 2)
于 2013-11-08T23:18:24.387 に答える