我打電話的,我想在數據庫中插入數據形式的行動InserStudent.jsp
文件從AddStudent.jsp
。java.sql.SQLException:[Microsoft] [ODBC Microsoft Access> Driver]參數太少。預計1
我的數據庫表的結構如下:
ID|Name|RollNumber|PhoneNumber|StudyProgram|Status
下面是InserStudent.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<body>
<%
String nam=request.getParameter("stuname");
String roll=request.getParameter("sturoll");
String phone=request.getParameter("stuphone");
String prog=request.getParameter("stuprogram");
String stats=request.getParameter("stustatus");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:stdProjectDataDSN";
Connection c = DriverManager.getConnection(url);
Statement statement = c.createStatement() ;
String sql = "insert into students (ID, NAME, RollNumber, PhoneNumber, StudyProgram, Status)";
sql += "values ('"+ nam +"','"+ nam +"','"+ roll +"','"+ phone +"','"+ prog +"',"+ stats +")";
statement.execute (sql);
c.close();
response.sendRedirect("ManageAllStudent.jsp");
%>
</body>
</html>
這將導致以下異常代碼:
HTTP狀態500
類型異常報告
消息
描述服務器遇到一個內部錯誤()阻止其完成此請求。
例外
org.apache.jasper.JasperException:發生處理JSP頁/web/InserStudent.jsp例外,在第27行
24:語句語句= c.createStatement();
25:字符串SQL = 「插入到學生(ID,NAME,RollNumber,******中國,StudyProgram,狀態)」;
26:SQL + =「值( ' 「+南+」', ' 「+南+」', ' 「+滾+」', ' 「+電話+」', ' 「+ PROG +」', 「+ stats +」)「;27:的Statement.execute(SQL);
28:c.close(); 29: 30:response.sendRedirect(「ManageAllStudent.jsp」);堆棧跟蹤: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) org.apache.jasper .servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
根源
javax.servlet.ServletException:JAVA。 sql.SQLException:[Microsoft] [ODBC Microsoft Access> Driver]參數太少。預計1 注意根源的完整堆棧跟蹤是是Apache Tomcat/6.0.35 logs.javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
我是什麼可用失蹤或我做錯了什麼?在ShowAllStudent.jsp
頁面,它顯示了我使用相同腳本的數據庫中的所有數據。
還可以編輯下面的代碼爲** **的Class.forName但它也does'not工作 '的Class.forName( 「sun.jdbc.odbc.JdbcOdbcDriver中」)的newInstance();' – mobi001
http://en.wikipedia.org/wiki/SQL_injection – BalusC
感謝名單@BalusC爲 – mobi001