为了账号安全,请及时绑定邮箱和手机立即绑定

java中sql准备语句的问题

java中sql准备语句的问题

汪汪一只猫 2022-07-06 09:57:58
尝试使用带有准备好的语句的 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' 附近使用正确的语法 感谢您的帮助
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

改变这个

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

至此

UPDATE events SET eventParticipants = ? WHERE eventId = ?

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


查看完整回答
反对 回复 2022-07-06
?
慕少森

TA贡献2019条经验 获得超9个赞

而不是 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, ...);



查看完整回答
反对 回复 2022-07-06
?
呼唤远方

TA贡献1856条经验 获得超11个赞

你的 SQL 是错误的。请在此处阅读有关 INSERT 语句的MySQL 文档,并在此处阅读有关 UPDATE 以及如何使用它们的示例。INSERT 不能用于更新现有行。

我怀疑正确的说法是

update events set eventParticipants = ? where eventId = ?

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


查看完整回答
反对 回复 2022-07-06
  • 3 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号