2013-06-12 6 views
0

У меня есть часть программного обеспечения, где данные вставляются в таблицу, если только данные не существуют, и в этом случае таблица должна обновляться.
Вставка данных в таблицу не вызывает никаких проблем. Я использую следующий код для этого:Обновление таблицы MySQL с проблемой JDBC

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 ваше руководство, чтобы использовать команду UPDATE в MySQL

+0

Спасибо, это работает! Раньше у меня никогда не было проблемы с этим. У меня есть несколько подобных скриптов, где я использую 'SET' несколько раз подряд и не вызывает ошибок. Интересно, почему это так... –

Смежные вопросы