使用Java开发表单存入数据库时遭遇MySQL SQL语法错误求助
SQL语法错误排查:Java表单数据存入数据库失败
错误提示
- 未输入值时的报错:
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 'values('','','','','',null,'','',''))' at line 1
- 输入值后的报错:
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 'values('**********785@gmail.com','','Aashin','sood','vpo bhawarn teh palampur di' at line 1
问题代码片段
public class RegisterServlet extends HttpServlet{ private static final String INSERT_QUERY = "INSERT INTO USER (email, password, firstname, lastname, address, pincode, state, number, feedback values(?,?,?,?,?,?,?,?,?))";
错误原因及修复方案
你的INSERT语句存在明显语法错误:列名列表的右括号缺失,导致values关键字被错误地包含在列名括号内,破坏了SQL结构。
修正后的正确SQL语句如下:
private static final String INSERT_QUERY = "INSERT INTO `USER` (email, password, firstname, lastname, address, pincode, state, number, feedback) VALUES(?,?,?,?,?,?,?,?,?)";
几点说明:
- 补上列名列表末尾的右括号
),将values移到括号外侧,符合INSERT INTO 表名(列名) VALUES(占位符)的标准语法 - 移除
number前多余的空格,保持代码整洁 - 用反引号
包裹USER`——因为USER是MySQL的保留关键字,虽然部分版本允许直接使用,但加反引号能避免潜在的语法冲突
内容的提问来源于stack exchange,提问作者Aashin Sood
相关产品推荐
相关产品推荐

