0

フィールド値を別のjspページに渡すjspページを設計しました。このページでは、値をデータベースに保存し、このページでの成功または失敗に応じて適切なメッセージを表示したいと考えています。データがデータベースに挿入されず、エラーメッセージが表示されないことを除いて、すべてが正しく機能しているようです。


学生.jsp

<form id="form" method="post" action="students_final.jsp">
  Student name:<input type="text" value="" name="name">
  Reg no:<input type="text" value="" name="regno">
  <input type="submit" value="Register" />
</form>

students_final.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java"%>
<%@page import="java.lang.*" import="java.sql.*"%>

<% 
  try {
    Class.forName("com.mysql.jdbc.Driver");  
    String url="jdbc:mysql://localhost:3306/userdbase";
    Connection connection = DriverManager.getConnection(url, "root", "passwd");  

    String name=request.getParameter("name");
    String regno=request.getParameter("regno");

    "INSERT INTO `schooldatabase`.`test` (`name`) VALUES ('" + name + "');";
    Statement st= connection.createStatement();
    int count=st.executeUpdate(strquery);

    /*ResultSet rs= st.executeQuery(strquery);*/
  }
  catch(Exception e)
  {
    System.out.println("Could not connect");
  }
%>

私は非常にばかげた間違いがあることを知っています。見つけるのを手伝ってください!!

4

3 に答える 3

1

トランザクションをコミットしてみてください。自動コミットが間違っている可能性があります。

PreparedStatement を使用する必要があります。これは、起こるのを待っている SQL インジェクション攻撃です。

どのリソースも閉じないため、このアプリが機能するようになったとしても、このアプリは長時間実行されません。

于 2012-06-12T10:29:48.243 に答える
0
String url = "jdbc:mysql://localhost:3306/schooldatabase";

私が間違っていなければ、あなたはこのクエリを MySQL で実行しました。私が知る限り、「schooldatabase」はデータベース名で、「test」はその中のテーブルです。また

String query = "INSERT INTO test ('name') VALUES ("+name+")";
int count = st.executeUpdate(query);

これは機能します。

于 2013-08-18T02:35:48.220 に答える
0

"INSERT INTO schooldatabase. test( name) VALUES ('" + 名前 + "');";

これを変数に割り当てます

于 2014-01-17T15:10:19.843 に答える