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

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

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

喵喵时光机 2023-10-12 17:21:49
我正在使用 JDBC 创建一个网站,在运行 TOMCAT 时出现以下错误,我应该如何解决这个问题,我在 MYSQL 工作台中创建了 6 列作为 uname、pass、name、city、email、phone 但仍然收到此错误。这是我的 register.java servlet 文件,我运行它并将我得到的类复制粘贴到 WEB-INF/classes 文件夹public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{        response.setContentType("text/html");            PrintWriter out=response.getWriter();        try{            Class.forName("com.mysql.jdbc.Driver");            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/form","root","sudhakar");            String uname = request.getParameter("uname");            String psw = request.getParameter("psw");            String nam = request.getParameter("nam");            String cit = request.getParameter("cit");            String ema = request.getParameter("ema");            String num = request.getParameter("num");                    PreparedStatement pst = con.prepareStatement("insert into login values(?,?,?,?,?,?)");                    pst.setString(1,uname);                    pst.setString(2,psw);                    pst.setString(3,nam);                    pst.setString(4,cit);                    pst.setString(5,ema);                    pst.setString(6,num);                    pst.executeUpdate();                    out.print("Successs");        }catch(Exception e){            out.print(e);        }    }}
查看完整描述

1 回答

?
慕村9548890

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

将您的 SQL 语句更改为:

insert into login(uname,pass,name,city,email,phone) values(?,?,?,?,?,?)

通常建议始终显式命名您的列,以便在添加新的(可以为空/明显默认)列时您的语句继续工作,或者在重命名或删除列时停止工作,并且它还使您的代码更加自记录


查看完整回答
反对 回复 2023-10-12
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

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