【问题标题】:Getting com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL syntax获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法
【发布时间】: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 No ExecuteInsert.
  • 顺便说一句,您确实应该在 INSERT 中指定列名(即insert into table (c1, c2, ...) values (...)),不要依赖于任何特定顺序的列。

标签: java mysql sql


【解决方案1】:

像这样改变你的prepareStatement;

     insert into msearch (mid, model, name, price, pcolor, imei, date, access) values(?,?,?,?,?,?,?,?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2020-10-26
    • 2012-04-20
    • 2021-02-23
    • 2017-02-10
    • 2013-11-20
    • 2016-07-07
    相关资源
    最近更新 更多