【发布时间】:2015-06-23 03:09:20
【问题描述】:
我的目标是在我创建的现有表中添加一个新行。但是,我收到以下错误。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'Name, Last Name, Tel No.)VALUES (2056732, 'Hello', 'World', 3)' 附近使用正确的语法 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:408) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 在 com.mysql.jdbc.Util.getInstance(Util.java:386) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006) 在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719) 在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2450) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2371) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2355) 在AddingNewRow.main(AddingNewRow.java:50)
这是代码的一部分。如果您需要整个代码以找出问题所在,请告诉我。
Connection conn = null;
PreparedStatement ps = null;
Scanner in = new Scanner(System.in);
System.out.print("Enter the student number: ");
int studentNO = in.nextInt();
System.out.print("Enter the first name: ");
String fName = in.next();
System.out.print("Enter the last name: ");
String lName = in.next();
System.out.print("Enter the telephone number: ");
int telNO = in.nextInt();
try {
conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);
System.out.println("Connected");
//Executing a query
String sql_query = "INSERT INTO registration (ID, First Name, Last Name, Tel No.) VALUES (?, ?, ?, ?)";
System.out.println("Table found");
ps = conn.prepareStatement(sql_query);
ps.setInt(1, studentNO);
ps.setString(2, fName);
ps.setString(3, lName);
ps.setInt(4, telNO);
System.out.println("Values added");
ps.executeUpdate();
System.out.println("Values updated");
}
这是我运行程序时得到的输出
输入学号:1234567
输入名字:你好
输入姓氏:世界
输入电话号码:123321
已连接
找到表
增加的价值
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException...
我知道这可能只是一个非常愚蠢的问题,但我刚刚开始使用数据库,即使在阅读了此处发布的大多数其他类似问题之后,我也无法弄清楚代码有什么问题。
如果有人能告诉我哪里出了问题,我将非常感激。提前致谢。
【问题讨论】:
-
我会担心列名中有空格......
-
您确定该列有句号吗?
Tel No.