在java中的sql preparedstatement中遇到麻烦

问题描述 投票:0回答:3

当我尝试使用带有预准备语句的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'附近使用正确的语法,感谢您的帮助

java sql
3个回答
1
投票

改变这个

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

对此

UPDATE events SET eventParticipants = ? WHERE eventId = ?

如果你做一个insert语句,它应该填充你的表


1
投票

而不是INSERT INTO table_name VALUES(value1,value2,value3,...);尝试使用UPDATE table_name SET column1 = value1,column2 = value2,... WHERE condition;或INSERT INTO table_name VALUES(&value1,&value2,&value3,...);


0
投票

你的SQL错了。请阅读MySQL文档here关于INSERT语句和here关于UPDATE,以及如何使用它们,以及示例。 INSERT不能用于更新现有行。

我怀疑正确的陈述是

update events set eventParticipants = ? where eventId = ?

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

© www.soinside.com 2019 - 2024. All rights reserved.