try {
String req = "INSERT INTO nouvelle_installation" +
"values('" + ref + "','" + today + "','" + check + "','" + nbligne +
"','" + tligne + "','" + categorie + "','" + instal + "','" + cin +
"','" + user + "','" + prenom+"','" + numC + "','" + num + "','" + voie +
"','" + tvoie + "','" + imm + "','" + app + "','" + etage +
"','" + codep + "')";
Statement m = s.getCon().createStatement();
m.executeUpdate(req);
} catch (SQLException e1) {
e1.printStackTrace();
}
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Erreur desyntaxeprès de''aaa','2012-04-10','','------','---------------','----- - ”, 'NouvelleInstallati'àlaligne 1
答案 0 :(得分:2)
正如其他人所说,使用prepared statements而不是连接你的陈述。
这会阻止SQL injection和您当前的问题:
"INSERT INTO nouvelle_installation" + "values" ...
结果
"INSERT INTO nouvelle_installationvalues" ...
您的表名与关键字values
之间缺少空格。
答案 1 :(得分:2)
你需要在“INSERT INTO nouvelle_installation”+“values(......)之间加一个空格 或者字符串看起来像
"INSERT INTO nouvelle_installationvalues("...
所以看起来应该是这样的
"INSERT INTO nouvelle_installation" + " values(...
答案 2 :(得分:1)
正如已有人指出的那样,此代码受Sql注入攻击的影响
但是,查询中显示的第一个错误是values
关键字
答案 3 :(得分:1)
使用预准备语句而不是连接语句。
同样准备好的陈述比陈述更快。
您的表名与关键字values
之间缺少空格。
答案 4 :(得分:0)
您在num
后面有一个引用,在voie
之前有一个引号,它们之间没有逗号。那是你想要的吗?
... + "','" + num + "'" +
"'" + voie + "','" + tvoie + ...
这实际上为您提供了,'NUM''VOIE','
。
values
关键字之前也没有空格。