我正在爲一個MMORPG設計一個數據庫,而管理員後端。我需要一個功能,允許我爲數據庫中的每個帳戶添加指定數量的遊戲主幣種:Gold
。如何將數學mysql查詢應用於數據庫中的每一行?
這是我有:
function massAddGold($gold_amount){
dbconnect();
$value=mysql_query("SELECT * from `mmo_db1`.`users`;");
while ($row=mysql_fetch_array($value)){
$currentgold=$row['gold'];
$newgold=$currentgold+$gold_amount;
mysql_query("UPDATE `mmo_db1`.`users` SET `gold` = \"$newgold\";");
}
dbclose();
}
其中mmo_db1
是數據庫的名稱。
當我執行該命令時,我檢查數據庫massAddGold("50");
。它採用最高值爲Gold
的行,將50 gold
添加到該行,然後將該值應用於所有行。我需要它在每一行上單獨執行。
的幾個注意事項: 不要使用新的應用mysql_職能;使用mysqli或PDO。 您不需要在查詢結尾添加分號(大部分時間)。 您可以在查詢中爲字符串數據使用單引號,這樣您就不必轉義雙引號。 –
您的代碼非常活潑。當你提取用戶的黃金價值時,它可能在其他地方發生了變化,並用舊值覆蓋它。對於剛買了昂貴東西的人來說很好。對那些剛剛獲得大量黃金的人不利。無論哪種方式,你都會讓很多人因爲這種糟糕的代碼而生氣 –
G-NUGGET,我從來沒有使用過任何一種,我使用過MySQL。我現在正在研究PDO,並試圖找出所有問題。另外,我嘗試使用單引號,它只是傳遞一個NULL值。 Marc B.,我接受關於改進此代碼的建議。下面我已經實施了Adrian的解決方案。 – Justin