Mysql java executeUpdate错误

时间:2014-09-23 10:12:46

标签: java mysql sql database

当我使用此查询时出现此错误

  

线程“main”中的异常   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   在'12:04:44附近使用正确语法的MySQL服务器版本,   23-09-2014 12:04:44)'第1行

这是代码:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); // creo l'oggetto
String dataStr = sdf.format(new Date());
System.out.println(dataStr); 

// eseguo una query

/*stmt.executeQuery("INSERT INTO incomeCalc(c_timestamp, parent_uid, uid, status, username, password, token, enable_webservices, "
    + "webservices_ip, name, mobile, email, sender, footer, address, city, state, country, zipcode, credit, datetime_timezone,"
    + "lang  uage_module, fwd_to_mobile, fwd_to_email, fwd_to_inbox, replace_zero, plus_  sign_remove, plus_sign_add, "
    + "send_as_unicode, local_length, register_datetime, lastupdate_datetime,) " */

stmt.executeUpdate("INSERT INTO playsms_tblUser(parent_uid, status, username, password, token, enable_webservices, credit, datetime_timezone, language_module, register_datetime, lastupdate_datetime)" 
    + "VALUES (1, 4, "+user+", MD5("+password+"), MD5("+password+"), 1, "+initialCredit+", +0100, en_US, "+dataStr+", "+dataStr+")");
db.close();

错误在哪里?

1 个答案:

答案 0 :(得分:0)

我猜这个用户名是varchar类型的?然后你应该在它周围添加单引号。同样适用于日期。

stmt.executeUpdate("INSERT INTO playsms_tblUser(parent_uid, status, username, password, token, enable_webservices, credit, datetime_timezone, language_module, register_datetime, lastupdate_datetime)" 
+ "VALUES (1, 4, '"+user+"', MD5("+password+"), MD5("+password+"), 1, "+initialCredit+", +0100, en_US, '"+dataStr+"', '"+dataStr+"')");

db.close();