获取 java.sql.SQLException:列计数与第 1 行的值计数不匹配
Getting java.sql.SQLException: Column count doesn't match value count at row 1
我正在使用 JDBC 创建一个网站,我在 运行 宁 TOMCAT 时收到以下错误,我应该怎么做才能解决这个问题,我在 MYSQL workbench as uname,pass,name,city,email,phone 但仍然出现此错误。
这是我的 register.java servlet 文件,我 运行 复制粘贴 class 我进入 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);
}
}
}
将您的 SQL 语句更改为:
insert into login(uname,pass,name,city,email,phone) values(?,?,?,?,?,?)
通常建议始终明确命名您的列,以便您的语句在添加新(nullable/sensibly 默认)列时继续工作,或者在重命名或删除列时停止工作,并且它还使你的代码更自文档化
我正在使用 JDBC 创建一个网站,我在 运行 宁 TOMCAT 时收到以下错误,我应该怎么做才能解决这个问题,我在 MYSQL workbench as uname,pass,name,city,email,phone 但仍然出现此错误。
这是我的 register.java servlet 文件,我 运行 复制粘贴 class 我进入 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);
}
}
}
将您的 SQL 语句更改为:
insert into login(uname,pass,name,city,email,phone) values(?,?,?,?,?,?)
通常建议始终明确命名您的列,以便您的语句在添加新(nullable/sensibly 默认)列时继续工作,或者在重命名或删除列时停止工作,并且它还使你的代码更自文档化