2016-04-07 14 views
-1

所以我有一個數據庫中的值,我想獲得,然後減去從用戶輸入獲得的另一個值,並重新寫入這個新值之前在數據庫中的值的位置。我聽說這可以通過準備好的陳述來完成,但不太確定。我如何更新我的mysql數據庫中使用預準備語句的值

謝謝。

+1

是的,它可以。你試過什麼了? –

+0

歡迎來到StackOverflow。請訪問[幫助],參加[遊覽]並閱讀[問]。你的問題的內容如下:「我懶得自己去看這個,也許我可以讓某人爲我寫這篇文章」,因此這是無關緊要的。如果您嘗試了它並且無法使其發揮作用,那麼您可以將所做的一切與錯誤消息和/或意外行爲一起發佈,我們會盡力爲您提供幫助。但首先你必須自己努力。 –

+0

不確定如何使用準備好的語句。我通過閱讀數據庫中的值然後減去我的值然後重寫來完成它。但我試圖用準備好的聲明來減少代碼。 –

回答

0

如果語句要經常重複使用,您可以通過創建預準備語句並更新每次調用的值來避免數據庫解析每個調用的SQL語句所需的處理時間 - 準備好的語句將具有一個變量值的佔位符,只有在創建準備好的語句時SQL纔會被解析。

stm = conn.prepareStatement("update MyTable set Col1 = Col1 - ? where KeyCol = ?"); 

然後每次有新的鍵值和關聯的偏移時間,你將它們設置如下:

stm.setInteger(1,newOffset); // assign newOffset value to first ? 
stm.setInteger(2,keyVal); 
stm.execute(); // executes the statement with the specified values 
+0

完美謝謝很多 –

0

我們需要知道你的表和屬性。如果是像每個用戶都有一定的點數的表稱爲用戶,你可以做一個SQL語句是這樣的:

SELECT points FROM users WHERE username='somename'; 

然後,您可以與您的新點更新分數變量「newpoints」通過做這樣的事情:

UPDATE users SET points = newpoints WHERE username = 'somename'; 

這個網站有一些真正有用的命令:http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm

+0

謝謝鏈接幫助了很多 –

相關問題