MySQL语法更新多列时出错

时间:2017-01-21 11:46:34

标签: java mysql syntax-error

我正在尝试通过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查询。我是新手,无法弄清楚语法有什么问题。表名和属性名称是正确的。我已经复查了。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

user是保留关键字。请参阅文档here

尝试用反引号包装它:

ps = (PreparedStatement) con.prepareStatement("Update `user` set user_id =?, FName=? , LName=?,  City=? , Email=? , Country=? , DOB=?, JobPosition=?, Profile_Picture=?");

此外,没有where子句,因此更新将应用于所有行 - 可能不是您想要的。