我正在尝试解决插入Postgresql表的问题
我看了这个类似的问题,但它没有解决我的问题
ERROR : The column index is out of range: 1, number of columns: 0
这是获取错误的代码部分:
String query = "INSERT INTO reviews (nbstar, body, author, product_id) VALUES($1,$2,$3,$4)";
PreparedStatement prepareStatement = connection.prepareStatement(query);
prepareStatement.setInt(1, nbStar);
prepareStatement.setString(2, body);
prepareStatement.setString(3, author);
prepareStatement.setInt(4, productId);
boolean executed = prepareStatement.execute();
我试了好几次来改变索引号但仍然是同样的错误
这是表的架构:
任何人都可以给我一个建议吗?
感谢。
答案 0 :(得分:9)
在sql查询中,您要插入5个字段(id,nbstar,body,author,product_id)的值,但只有4个值VALUES($ 1,$ 2,$ 3,$ 4)。
根据您编辑过的问题进行更新,只需修改您的查询,如下所示:
VALUES($1,$2,$3,$4)
到
VALUES(?,?,?,?)
答案 1 :(得分:0)
对我来说,问题在于查询字符串的末尾有分号。像这样:
String query = "INSERT INTO reviews (nbstar, body, author, product_id) VALUES(?,?,?,?);";
请注意,在查询字符串末尾附加了;
。修复方法是删除它:
String query = "INSERT INTO reviews (nbstar, body, author, product_id) VALUES(?,?,?,?)";