2016-11-18 2 views
2
String addQuer = "INSERT INTO emaildata VALUES('" + email + "','" + fname + "','" + lname + "','" + subject + "','" + content + "')"; 
     statement.execute(addQuer); 

У меня есть код выше, который вставляет данные в таблицу. Я использую базу данных MS Access. Все поля имеют тип (длинный текст). Запрос отлично работает, когда я вставить следующий набор данныхВставка текста не выполняется для некоторых строковых значений, но не для других

  1. электронная почта = SALMAN Маджид
  2. Салман
  3. Маджид
  4. Test Mail
  5. Меня зовут Салман.

Но тот же запрос дает ошибку, когда я использую следующий набор данных в последнем поле. Ошибка - ошибка синтаксиса. Отсутствует оператор .... Пожалуйста, не обращайте внимание на такой длинный текст, потому что этот текст дает ошибку, поэтому я разместил весь текст.

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Get the free Outlook app. 

Мы обновили приложение Outlook, чтобы быть быстрее и проще в использовании. Независимо от того, какие почтовые службы вы используете ».

  1. "Outlook.com"
  2. Не Доступный
  3. Не Доступный
  4. Скачать сейчас: приложение Перспективы
  5. Получить бесплатное приложение Outlook.

    Мы обновили приложение Outlook, чтобы быть быстрее и проще в использовании. Независимо от того, какие почтовые службы вы используете, приложение Outlook позволяет вам делать больше.

[Скачать Outlook.] http://communication.microsoft.com/Key-6859501.C.ChVBd.C.K4.-.HJ67kt

Поле 5 заканчивается. Вышеупомянутый текст длинный, но я не мог вставить весь текст. Но ошибка в этом тексте, который я опубликовал.

ответ

4

У вас проблемы с SQL-инъекцией. Текст, содержащий одну цитату (например, «Мы ...»), приведет к тому, что ваша команда SQL будет недействительной. Вы должны использовать параметризованный запрос, который будет выглядеть примерно так:

String addQuer = "INSERT INTO emaildata VALUES (?,?,?,?,?)"; 
PreparedStatement ps = conn.prepareStatement(addQuer); 
ps.setString(1, email); 
ps.setString(2, fname); 
ps.setString(3, lname); 
ps.setString(4, subject); 
ps.setString(5, content); 
ps.executeUpdate(); 
+0

Спасибо @Gord, это решить мою проблему. Ты отличный человек. Большое спасибо. –

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