2013-06-12 41 views
0

我有一塊軟件將數據插入表中,除非數據存在,在這種情況下表應該更新。
將數據插入表格完全沒有問題。我用下面的代碼:使用JDBC更新MySQL表問題

PreparedStatement ps = this.con.prepareStatement("INSERT INTO tbl_banned(banned_player, banned_reason, banned_by, banned_from, banned_to) VALUES (?, ?, ?, ?, ?)"); 
ps.setString(1, player.getName()); 
ps.setString(2, reason); 
ps.setString(3, by); 
ps.setString(4, currentDateTime); 
ps.setString(5, toDateTime); 

ps.executeUpdate(); 

然而,當我嘗試使用下面的代碼來更新相同的信息在同一個表:

PreparedStatement ps = this.con.prepareStatement("UPDATE tbl_banned SET banned_reason=?, SET banned_by=?, SET banned_from=?, SET banned_to=? WHERE banned_player=?"); 
ps.setString(1, reason); 
ps.setString(2, by); 
ps.setString(3, currentDateTime); 
ps.setString(4, toDateTime); 
ps.setString(5, player.getName()); 

ps.executeUpdate(); 

我收到以下錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET banned_by='User', SET banned_from='2013/06/12 04:10:45', SET banned_to='2' at line 1 

我似乎無法弄清楚這個錯誤的原因是什麼,在過去的一個小時裏我一直在努力。如果有人能夠闡明這個問題,那將不勝感激。

回答

1

無需連續設置多個時間。它應該是:

PreparedStatement ps = this.con.prepareStatement("UPDATE tbl_banned SET banned_reason=?, banned_by=?, banned_from=?, banned_to=? WHERE banned_player=?"); 

here是你在MySQL中使用UPDATE命令

+0

謝謝指導,它的作品!儘管如此,我從來沒有遇到過這個問題。我有一些類似的腳本,我連續多次使用'SET'並導致沒有錯誤。我不知道這是爲什麼... –