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

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

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

GCT1015 2019-09-27 16:05:15
我的表的结构:id int AUTO_INCREMENT PRIMARY KEYtitle texturl textage 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列中,如何解决?
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

问题不在于id专栏。


从该语句看来,所有列都带有引号。因此,在SQL中,似乎只有一列


'"title","url","age"'

您可能想要拥有的是


"insert into table(title, url, age) values ('" + title + "','" + url + "'," + age + ")"

甚至更好,因为这是准备好的声明


"insert into table(title, url, age) values (?, ?, ?)"


查看完整回答
反对 回复 2019-09-27
?
冉冉说

TA贡献1877条经验 获得超1个赞

实际上,您有一个不同的问题(您仅传递了一个“值”)-


PreparedStatement ps=con.prepareStatement("insert into table(title, url, age) "

    + "values (?,?,?)");

ps.setString(1, title);

ps.setString(2, url);

ps.setInt(3, age); // <-- at a guess!

您原来的查询将所有三个值放在一个字符串中'\"+title+\",\"+url+\",\"+age+\"'。


查看完整回答
反对 回复 2019-09-27
  • 2 回答
  • 0 关注
  • 1473 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信