2013-11-26 2 views
0
String sql = "INSERT INTO order " + "(customerid, pant, shirt, date) " 
    + "VALUES ('" + jTextField1.getText() + "','" + jTextField2.getText() 
    + "','" + jTextField3.getText() + "','" + jTextField4.getText() + "')"; 

Когда попробовал это, я получил следующее сообщение об ошибке:SQL ошибка синтаксиса MySQLSyntaxErrorException

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 
    'order (customerid, pant, shirt, date) VALUES ('10','2','3','26')' at line 1 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method). 
+0

Этот код просто просит попросить SQL-инъекцию. Не используйте конкатенацию строк для SQL, используйте PreparedStatements и параметры запроса для любви к человечеству. – brettw

ответ

4

Вам нужно бежать reserved words как order с обратными кавычками

INSERT INTO `order` (customerid, ... 

Кроме того, я рекомендую использовать Получал Заявления.

+0

Да Вы правы. Я понял. –

0

Название таблицы "заказ" является зарезервированным словом, поэтому, пожалуйста, измените имя таблицы и попробуйте.

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