2017-05-31 9 views
-1
<%@ page import="java.sql.*"%> 
<%@ page contentType="text/html; charset=UTF-8"%> 
<% 

    try { 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 

     Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/members", "root", ""); 


     Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 

     String s1 = request.getParameter("fname"); 
     String s2 = (String)request.getParameter("password"); 
     String mySQL = "SELECT * FROM allusers WHERE fname='" + s1 +"' and password='" + s2 + "'"; 


     ResultSet oRS = st.executeQuery(mySQL); 
     if (oRS.next()) 
     { 
      //System.out.print("Hey"); 
      String s3 = (String)request.getParameter("lname"); 
      String s4 = (String)request.getParameter("mail"); 
      String s5 = (String)request.getParameter("gender"); 
      String s6 = (String)request.getParameter("religen"); 
      oRS.moveToInsertRow(); 
      mySQL = "UPDATE allusers SET lname='"+ s3 +"', mail='"+ s4 +"', gender='"+ s5 +"', religen='"+ s6 +"' WHERE fname='"+ s1 +"' "; 
      oRS = st.executeQuery(mySQL); 
      response.sendRedirect("didthat.jsp"); 
     } 
     else { 
      response.sendRedirect("notreg.jsp"); 
     } 
    } catch (Exception e) { 

     System.out.println(e.getMessage()); 
     System.out.println("Error in connecting"); 
    } // the connection is closed 

%> 

私はこれを行い、それは動作しないので、私はフラグを入れ、エラーは、mySQLの行(oRS.moveToInsetRow())にあります。データベースMysqlをJSPファイルで更新するにはどうすればよいですか?

このエラーを修正するには、 executeQuery()でデータ操作文を発行できません。

を接続における エラーが発生しましたありがとうございました:)

答えて

0

のexecuteQuery()メソッド書タイプの更新のために動作しません。更新のための は、更新のためのPreparedStatementでのみ動作しのexecuteUpdate(String型のクエリ)

のexecuteQuery(ので、PreparedStatementを使用してみてください)を使用します。代わりに、次の行の

0

String mySQL = "UPDATE allusers SET lname='"+ s3 +"', mail='"+ s4 +"', gender='"+ s5 +"', religen='"+ s6 +"' WHERE fname='"+ s1 +"' "; 
ResultSet oRS = st.executeQuery(mySQL); 

あなたはPreparedStatementのインスタンスを使用する必要があります。 PreparedStatementのST = NULL;

String mySQL = "UPDATE allusers SET lname=?, mail=?, gender=? religen=? WHERE fname=? "; 

st = connection.prepareStatement(mySQL); 
st.setString(1, s3); 
st.setString(2, s4); 
st.setString(3, s5); 
st.setString(4, s6); 
st.setString(5, s1); 

st.executeUpdate(mySQL); 

コードは、上記のすべての列に値が更新クエリで使用するホールド型Stringと変数S1、S2等であると仮定しています。

希望がある!

関連する問題