Reputation: 468
When I execute the code below, before every insert, automatically a row is getting filled with Null values and then the actual values are being inserted.
<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>
When I insert a value, the database contains the following:
Name Email Phone <br />
NULL NULL NULL <br />
ActualValue ActualValue Actual Value
Upvotes: 3
Views: 2100
Reputation: 631
You are not checking that form is submit or not just fire insert sql so it insert null value. first check that form is submit or not if form is submit then insert otherwise not insert.
Hope it will help you.
Upvotes: 0
Reputation: 114
You insert (NULL,NULL,NULL) each time you visit your webpage and not only on submit.
Upvotes: 2