获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法
Posted
技术标签:
【中文标题】获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法【英文标题】:Getting com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL syntax 【发布时间】:2012-12-22 06:23:57 【问题描述】:do
String mid=res.getString(1);
String model=res.getString(2);
String name=res.getString(3);
int price=res.getInt(4);
String pcolor=res.getString(5);
String imei=res.getString(6);
java.sql.Date date=res.getDate(7);
String access=res.getString(8);
if(id.equals(mid) || id.equals(imei))
System.out.println("iam inside");
PreparedStatement prp=con2.prepareStatement("insert into msearch values(?,?,?,?,?,?,?,?)");
prp.setString(1,mid);
prp.setString(2,model);
prp.setString(3,name);
prp.setInt(4,price);
prp.setString(5,pcolor);
prp.setString(6,imei);
prp.setDate(7,date);
prp.setString(8,access);
prp.executeUpdate();
System.out.println("iam inside2");
rows++;
b=1;
jTextField1.setText("");
while(res.next());
我是mysql新手
我正在尝试执行上面的代码,我得到了
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在第 1 行的 '' 附近使用正确的语法
应该是什么问题,请帮忙,
【问题讨论】:
你正在执行一个executeUpdate,难道不应该有executeQuery / executeInsert的等价物吗? @BryanMoyles NoExecuteInsert
.
顺便说一句,您确实应该在 INSERT 中指定列名(即insert into table (c1, c2, ...) values (...)
),不要依赖于任何特定顺序的列。
【参考方案1】:
像这样改变你的prepareStatement;
insert into msearch (mid, model, name, price, pcolor, imei, date, access) values(?,?,?,?,?,?,?,?)
【讨论】:
以上是关于获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法的主要内容,如果未能解决你的问题,请参考以下文章