connection.updateQuery("test_1", id, "UPDATE ? SET question = ?,var1=?,var2=?,var3=?,var4=?,var5=?,var6=?,con1=?,con2=?,con3=?,con4=?,con5=?,con6=?,vidp1=?,vidp2=?,vidp3=?,vidp4=?,ans=?,url_image=? WHERE id = ?", textArea1.getText(), textField1.getText(), textField2.getText(), textField3.getText(), textField4.getText(), textField5.getText(), textField6.getText(), comboBox1.getSelectedItem().toString(), comboBox2.getSelectedItem().toString(), comboBox3.getSelectedItem().toString(), comboBox4.getSelectedItem().toString(), comboBox5.getSelectedItem().toString(), comboBox6.getSelectedItem().toString(), null, null, null, null, ans_(), url_image);
public void updateQuery(String name,int id,String query,String text, String var1,String var2,String var3,String var4,String var5,String var6,String con1,String con2,String con3,String con4,String con5,String con6,String vidp1, String vidp2,String vidp3,String vidp4,String ans, String url_image){
try {
preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1,name);
preparedStatement.setString(2,text);
preparedStatement.setString(3,var1);
preparedStatement.setString(4,var2);
preparedStatement.setString(5,var3);
preparedStatement.setString(6,var4);
preparedStatement.setString(7,var5);
preparedStatement.setString(8,var6);
preparedStatement.setString(9,con1);
preparedStatement.setString(10,con2);
preparedStatement.setString(11,con3);
preparedStatement.setString(12,con4);
preparedStatement.setString(13,con5);
preparedStatement.setString(14,con6);
preparedStatement.setString(15,vidp1);
preparedStatement.setString(16,vidp2);
preparedStatement.setString(17,vidp3);
preparedStatement.setString(18,vidp4);
preparedStatement.setString(19,ans);
preparedStatement.setString(20,url_image);
preparedStatement.setInt(21,id);
preparedStatement.executeUpdate(); //ошибка
} catch (SQLException e) {
e.printStackTrace();
}
}
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 ''test_1' SET question = 'swrweqe\n2e1;[12elp[p3rl\nda0123021\n3dfwadad',var1='aw' at line 1
как исправить помогите?
Имя таблицы нельзя передавать в виде параметров. Параметрами можно передавать только значения полей
Пара предложений:
1. Формируйте запрос с подстановкой таблицы до этого метода
2. Переработайте данный метод, чтоб убрать +100500 параметров.
Как вариант, оберните передаваемые параметры в отдельный класс и назовите его НужныйВамЗапросQueryContainer.
connection.updateQuery(
"UPDATE test_1 SET question = ?,var1=?,var2=?,var3=?,var4=?,var5=?,var6=?,con1=?,con2=?,con3=?,con4=?,con5=?,con6=?,vidp1=?,vidp2=?,vidp3=?,vidp4=?,ans=?,url_image=? WHERE id = ?",
id,
textArea1.getText(),textField1.getText(),textField2.getText(),textField3.getText(),textField4.getText(),textField5.getText(),textField6.getText(),comboBox1.getSelectedItem().toString(),comboBox2.getSelectedItem().toString(),comboBox3.getSelectedItem().toString(),comboBox4.getSelectedItem().toString(),comboBox5.getSelectedItem().toString(),comboBox6.getSelectedItem().toString(),null,null,null,null,ans_(),url_image);
public void updateQuery(
String query,
int id,
String var1,String var2,String var3,String var4,String var5,String var6,String con1,String con2,String con3,String con4,String con5,String con6,String vidp1,String vidp2,String vidp3,String vidp4,String ans,String url_image){
try{
preparedStatement=connection.prepareStatement(query);
preparedStatement.setString(1,text);
preparedStatement.setString(2,var1);
preparedStatement.setString(3,var2);
preparedStatement.setString(4,var3);
preparedStatement.setString(5,var4);
preparedStatement.setString(6,var5);
preparedStatement.setString(7,var6);
preparedStatement.setString(8,con1);
preparedStatement.setString(9,con2);
preparedStatement.setString(10,con3);
preparedStatement.setString(11,con4);
preparedStatement.setString(12,con5);
preparedStatement.setString(13,con6);
preparedStatement.setString(14,vidp1);
preparedStatement.setString(15,vidp2);
preparedStatement.setString(16,vidp3);
preparedStatement.setString(17,vidp4);
preparedStatement.setString(18,ans);
preparedStatement.setString(19,url_image);
preparedStatement.setInt(20,id);
preparedStatement.executeUpdate(); //ошибка
}catch(SQLException e){
e.printStackTrace();
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники