使用JSP和MySQL执行查询时自动插入空值

时间:2013-07-22 07:45:50

标签: mysql jsp jdbc

当我执行下面的代码时,在每次插入之前,自动一行填充Null值,然后插入实际值。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="style.css" type="text/css">
    <title>Connecting to a Data base</title>
</head>
<body>

     <%
     String connectionURL="jdbc:mysql://localhost:3306/jsp_test";
     Connection connection = null;
     Class.forName("com.mysql.jdbc.Driver").newInstance();
     connection = DriverManager.getConnection(connectionURL, "root", "exeterblr");
     if(!connection.isClosed()) {
         out.println("Successfully connected to " + "MySQL server using TCP/IP...");
         }
     else
         {
         out.println("Cannot connect to DB");
         }
        String name=request.getParameter("name");
        String email=request.getParameter("email");
        String phone=request.getParameter("phone");
        PreparedStatement pstatement=null;
        int updateTable=0;
        String queryString = "INSERT INTO sample_info(name,email,phone) VALUES (?, ?, ?)";
        pstatement=connection.prepareStatement(queryString);
        pstatement.setString(1, name);
        pstatement.setString(2, email);
        pstatement.setString(3, phone);

        updateTable=pstatement.executeUpdate();
      %>



    <form method="post" action="index.jsp">
        <table>
            <tr>
            <td>Name</td><td><input type="text" name="name"></td>
            </tr>
            <tr>
            <td>Email</td><td><input type="text" name="email"></td>
            </tr>
            <tr>
            <td>Phone</td><td> <input type="text" name="phone"></td>
            </tr>

        </table>
        <input type="submit" value="Submit">
    </form>


</body>

当我插入一个值时,数据库包含以下内容:

Name Email Phone <br />
NULL NULL  NULL  <br />
ActualValue ActualValue Actual Value

2 个答案:

答案 0 :(得分:2)

每次访问网页时都插入(NULL,NULL,NULL),而不仅仅是提交。

答案 1 :(得分:0)

你没有检查表单是否提交只是fire insert sql所以它插入null值。如果提交表单,请先检查表单是否提交,否则插入不插入。

希望它会对你有所帮助。