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列中,如何解决呢?
问题不在于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) " + "values (?,?,?)"); ps.setString(1, title); ps.setString(2, url); ps.setInt(3, age); // <-- at a guess!
你原来的查询把所有三个值放在一个string'\"+title+\",\"+url+\",\"+age+\"'
。