猿问

java中sql准备语句的问题

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


汪汪一只猫
浏览 92回答 3
3回答

精慕HU

改变这个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 以及如何使用它们的示例。INSERT 不能用于更新现有行。我怀疑正确的说法是update events set eventParticipants = ? where eventId = ?但这取决于您要实现的目标。
随时随地看视频慕课网APP

相关分类

Java
我要回答