java.sql.SQLException:列数与第1行的值数不匹配

我的表的结构:


id int AUTO_INCREMENT PRIMARY KEY

title text

url text

age int

这是我尝试将数据保存到此表中的方法:


PreparedStatement ps=con.prepareStatement("insert into table(title, url, age) values ('\"+title+\",\"+url+\",\"+age+\"')");

System.out.println("Connected database successfully..");

ps.executeUpdate(); 

但是当我运行该应用程序时,我得到了


java.sql.SQLException:列数与第1行的值数不匹配


我猜问题可能出在id列中,如何解决?


GCT1015
浏览 1474回答 2
2回答

Helenr

问题不在于id专栏。从该语句看来,所有列都带有引号。因此,在SQL中,似乎只有一列'"title","url","age"'您可能想要拥有的是"insert into table(title, url, age) values ('" + title + "','" + url + "'," + age + ")"甚至更好,因为这是准备好的声明"insert into table(title, url, age) values (?, ?, ?)"

冉冉说

实际上,您有一个不同的问题(您仅传递了一个“值”)-PreparedStatement ps=con.prepareStatement("insert into table(title, url, age) "&nbsp; &nbsp; + "values (?,?,?)");ps.setString(1, title);ps.setString(2, url);ps.setInt(3, age); // <-- at a guess!您原来的查询将所有三个值放在一个字符串中'\"+title+\",\"+url+\",\"+age+\"'。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java