我编写了一个代码,用于在数据库中插入数据
String sql="INSERT INTO check (name,pass,pno) VALUES (?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, pass);
pstmt.setInt(3, no1);
pstmt.executeUpdate();
由于我已经避免了sql注入并使用了preparedstatement,我仍然在服务器日志中收到此错误:
SEVERE: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'check (name,pass,pno) VALUES ('Nikhil Muskur','qwerty1',7898455)' at line 1
我仔细检查了它,因为语法没有问题,那么任何人都可以帮助解决问题
答案 0 :(得分:3)
check
是MySQL中的保留字:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
将您的查询更改为:
String sql="INSERT INTO `check` (`name`, `pass`, `pno`) VALUES (?,?,?)";
所以MySQL知道你实际上正在访问一个表。
答案 1 :(得分:0)
(' Nikhil Muskur' qwerty1',7898455):更新查询(' Nikhil Muskur',' qwerty1',& #39; 7898455&#39)
7898455必须是字符串值。