我的user_account表包含我创建的名为donation_coins的列。
每当我执行UPDATE查询以将donation_coins设置为新值时,它只会删除旧值并重写为捐赠过程中定义的金额。
例如。如果x有10个donation_coins并再次捐赠15个硬币,他的donation_coins将是15而不是25。
字段类型为INT且启用了NULLS。
这是代码
connectdb($CONFIG['dbdbname'], $CONFIG['dbaddress'], $CONFIG['dbuser'], $CONFIG['dbpass']);
$query = mssql_query("SELECT * FROM user_account WHERE account = '".$account_username."'");
$row10 = mssql_fetch_array($query);
$old_coins = $row10['donation_coins'];
$transered_coins = $coin_quanity_coin;
$new_coins = $old_coins - $transered_coins;
//mssql_query("UPDATE [lin2db].[dbo].[user_account] SET [donation_coins] = '".$new_coins."' WHERE account = '".$account_username."'");
mssql_query("UPDATE [lin2db].[dbo].[user_account] SET [donation_coins] = donation_coins - ".$coin_quanity_coin." WHERE account = '".$account_username."'");
答案 0 :(得分:4)
这样做
update your_table
set x = x + 15
where id = :someId
答案 1 :(得分:0)
另一种方法,如果> SQL Server 2005
update user_account
set donation_coins += 15
where id = @someid
答案 2 :(得分:0)
您只需为更新声明提供新硬币
mssql_query("UPDATE [lin2db].[dbo].[user_account] SET [donation_coins] = ".$new_coins." WHERE account = '".$account_username."'");
你刚刚在执行sql之前计算了新的数量。
干杯, 马丁