У меня есть часть программного обеспечения, где данные вставляются в таблицу, если только данные не существуют, и в этом случае таблица должна обновляться.
Вставка данных в таблицу не вызывает никаких проблем. Я использую следующий код для этого:Обновление таблицы 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
Я не могу понять, в чем причина этой ошибки, и я боролся с ней в течение последнего часа. Если бы кто-нибудь мог пролить свет на эту тему, это было бы весьма признательно.
Спасибо, это работает! Раньше у меня никогда не было проблемы с этим. У меня есть несколько подобных скриптов, где я использую 'SET' несколько раз подряд и не вызывает ошибок. Интересно, почему это так... –