我正在尝试通过jsp表单输入并使用servlet将其存储到MYSQL Workbench中的表中来更新用户配置文件。我在更新表时遇到语法错误。
wp-admin
[编辑]
错误:
ps = (PreparedStatement) con.prepareStatement("UPDATE user SET user_id =?, FName=? , LName=?, City=? , Email=? , Country=? , DOB=?, JobPosition=?, Profile_Picture=? WHERE user_id=123");
ps.setInt(1, UserId);
ps.setString(2, Fname);
ps.setString(3, Lname);
ps.setString(4, City);
ps.setString(5, EmailId);
ps.setString(6, Country);
ps.setDate(7, java.sql.Date.valueOf(DOB));
ps.setString(8, JobPosition);
if (inputStream != null) {
ps.setBlob(9, inputStream);
}
这是我的SQL查询。我是新手,无法弄清楚语法有什么问题。表名和属性名称是正确的。我已经复查了。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
user
是保留关键字。请参阅文档here
尝试用反引号包装它:
ps = (PreparedStatement) con.prepareStatement("Update `user` set user_id =?, FName=? , LName=?, City=? , Email=? , Country=? , DOB=?, JobPosition=?, Profile_Picture=?");
此外,没有where
子句,因此更新将应用于所有行 - 可能不是您想要的。