问题描述
尝试使用带预备语句的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”附近使用谢谢您的帮助
1楼
改变这个
insert into events (eventParticipants) values(?) where (eventId)=?
对此
UPDATE events SET eventParticipants = ? WHERE eventId = ?
如果您执行插入语句,则它应该填充您的表
2楼
代替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,...);
3楼
您的SQL错误。 请阅读有关INSERT语句的MySQL文档并有关UPDATE以及应如何使用示例的MySQL文档。 INSERT不能用于更新现有行。
我怀疑正确的说法是
update events set eventParticipants = ? where eventId = ?
但这取决于您要实现的目标。