我正在尝试根据其唯一用户ID更新特定用户的名字,姓氏和电子邮件。
我正在进行以下查询,但我得到一个异常,告诉我的语法不正确。我是JDBC和MYSQL的新手,但这就是我所做的:
PreparedStatement ps = (PreparedStatement) conn.prepareStatement("UPDATE user_table WHERE userTableID = "+ userId+ "(first_name, last_name, email) values (?, ?, ?)");
ps.setString(1, newFirstName);
ps.setString(2, newLastName);
ps.setString(3, newEmail);
ps.execute();
更新:在一些指导下,我决定这样做,而且工作正常。
PreparedStatement ps = (PreparedStatement) conn.prepareStatement("UPDATE user_table SET first_name= ?, last_name=?, email=?" + "WHERE userTableID = ?");
ps.setString(1, newFirstName);
ps.setString(2, newLastName);
ps.setString(3, newEmail);
ps.setInt(4, userId);
ps.execute();
答案 0 :(得分:0)
正确的更新语法是UPDATE table_name SET column1=value1,column2=value2,...
WHERE some_column=some_value;
试试这个:
PreparedStatement ps = (PreparedStatement) conn.prepareStatement("UPDATE user_table set (first_name, last_name, email) values (?, ?, ?) WHERE userTableID = \""+ userId+ "\"");
答案 1 :(得分:0)
试试这个
PreparedStatement ps = (PreparedStatement) conn.prepareStatement("UPDATE user_table set first_name=?,last_name=?,email=? WHERE userTableID = ?");
ps.setString(1, newFirstName);
ps.setString(2, newLastName);
ps.setString(3, newEmail);
ps.setString(4, userId);
ps.executeUpdate();
答案 2 :(得分:0)
在第二个问题中,可能存在问题,因为空格在email=?
之后提供单个空格,如下所示
PreparedStatement ps =conn.prepareStatement("UPDATE user_table SET first_name= ?, last_name=?, email=? "
+ "WHERE userTableID = ?");
ps.setString(1, newFirstName);
ps.setString(2, newLastName);
ps.setString(3, newEmail);
ps.setInt(4, userId);
ps.execute();