DBに値を追加できないです。
下記のようにコードを打ち、フォームで値を入力すると
SQLException:(conn=35) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?,?,?,?,?,?,?,?,?,?,?,?,?,?)' at line 1 nullnullnullを登録しました。
というエラーコードが出てしまいます。
package sample; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class formrequest extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //パラメーター取得 request.setCharacterEncoding("UTF-8"); String sei= request.getParameter("sei"); String mei= request.getParameter("mei"); String sei_f=request.getParameter("sei_f"); String mei_f=request.getParameter("mei_f"); String gender=request.getParameter("gender"); String year= request.getParameter("year"); String month= request.getParameter("month"); String day= request.getParameter("day"); String post= request.getParameter("post"); String pre=request.getParameter("pre"); String address=request.getParameter("address"); String tell=request.getParameter("tell"); String mail=request.getParameter("mail"); String bikou=request.getParameter("bikou"); //コンテンツタイプ指定 response.setContentType("text/HTML; charset=UTF-8"); PrintWriter out=response.getWriter(); //HTML out.println("<DOCTYPE HTML>"); out.println("<html>"); out.println("<head>"); out.println("<meta charset=\"UTF-8\">"); out.println("<title>result</title>"); out.println("</head>"); out.println("<body>"); //変数定義 Connection conn = null; Statement stmt = null; try { //JDBCドライバをロード Class.forName("org.mariadb.jdbc.Driver").newInstance(); //DBへのコネクション conn = DriverManager.getConnection("jdbc:mariadb://localhost:3306/test", "root", ""); stmt = conn.createStatement(); //sql文の定義 String sql = "insert into test(sei,mei,sei_f,mei_f,gender,year,month,day,post,pre,address,tell,mail,bikou) " + "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //実行するSQL文と7パラメータ PreparedStatement stmt1=conn.prepareStatement(sql); stmt1.setString(1,sei); stmt1.setString(2,mei); stmt1.setString(3,sei_f); stmt1.setString(4,mei_f); stmt1.setString(5,gender); stmt1.setString(6,year); stmt1.setString(7,month); stmt1.setString(8,day); stmt1.setString(9,post); stmt1.setString(10,pre); stmt1.setString(11,address); stmt1.setString(12,tell); stmt1.setString(13,mail); stmt1.setString(14,bikou); //INSERTの実行 int num= stmt.executeUpdate(sql); stmt1.close(); //例外発生処理 }catch (ClassNotFoundException e){ out.println("ClassNotFoundException:" + e.getMessage()); }catch (SQLException e){ out.println("SQLException:" + e.getMessage()); }catch (Exception e){ out.println("Exception:" + e.getMessage()); }finally{ try { if (conn != null){ conn.close(); } }catch (SQLException e){ out.println("SQLException:" + e.getMessage()); } } out.println(sei+mei+sei_f+mei_f+gender+year+month+day+post+post+address+tell+mail+bikou+"を登録しました。" ); out.println("<body>"); out.println("<html>"); } }
どのようにすれば反映されるようになるでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/12 03:05
2021/06/12 03:51
2021/06/12 11:06