当前位置: 代码迷 >> java >> 在Java中的SQL准备语句中出现问题
  详细解决方案

在Java中的SQL准备语句中出现问题

热度:57   发布时间:2023-08-04 09:13:04.0

尝试使用带预备语句的where子句尝试在表(事件)中设置值时,sql语法出错,这是代码`

public void setEventParticipants(int id, String eventParticipants)
    {

            try {
            String req1="insert into events (eventParticipants) values(?) where (eventId)=?";
            PreparedStatement pre = c.prepareStatement(req1);
            pre.setString(1, eventParticipants);
            pre.setInt(2, id);
            pre.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(EventService.class.getName()).log(Level.SEVERE, null, ex);
        }
    }`

我收到此错误:您的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ where(eventId)= 7”附近使用谢谢您的帮助

改变这个

insert into events (eventParticipants) values(?) where (eventId)=?

对此

UPDATE events SET eventParticipants = ? WHERE eventId = ?

如果您执行插入语句,则它应该填充您的表

代替INSERT INTO table_name VALUES(value1,value2,value3,...); 尝试使用UPDATE table_name SET column1 = value1,column2 = value2,... WHERE条件; 或INSERT INTO table_name VALUES(&value1,&value2,&value3,...);

您的SQL错误。 请阅读有关INSERT语句的MySQL文档并有关UPDATE以及应如何使用示例的MySQL文档。 INSERT不能用于更新现有行。

我怀疑正确的说法是

update events set eventParticipants = ? where eventId = ?

但这取决于您要实现的目标。

  相关解决方案