For Programmers: Free Programming Magazines  


Home > Archive > Java Help > April 2004 > jsp jdbc mysql Invalid argument value, message from server: "Duplicate entry '0'









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author jsp jdbc mysql Invalid argument value, message from server: "Duplicate entry '0'
vivienne wykes

2004-04-22, 2:51 pm

Hi All,

I am working through a shoping cart tutorial using JSP,JDBC and java beans.

I get the following error when trying to write an order to a mysql database.

Invalid argument value, message from server: "Duplicate entry '0' for key
1"

Could this be related to the way I have set up my orders table?

It is set up like this :

order_id varchar(10)
firstName mediumtext
surname mediumtext
address text
city mediumtext
postcode varchar(8)
cardnumber float(16,0)
card_type text
total_order_value tinyint(6)




When the table is empty I get to the confirmed order page if I input a card
number without name and address.
When I try any information as a second order I get the duplicate entry error
message.

Any help appreciated.

The JSP page is shown below.


Jim Ascroft

<%@ page language="java" contentType="text/html"%>
<%@ page
import="java.sql.*,java.util.*,com.bloodoo.ShoppingBasket,com.bloodoo.Produc
t "%>

<%@ page errorPage="errorpage.jsp" %>

<jsp:useBean id="basket" class="com.bloodoo.ShoppingBasket"
scope="session"/>

<html>
<head> <title>Your Order Has Been Received</title> </head>
<body>

<%
Class.forName("org.gjt.mm.mysql.Driver");
java.sql.Connection connection =
java.sql.DriverManager.getConnection("jdbc:mysql://localhost/shop");

String query = "INSERT INTO orders VALUES ('',?,?,?,?,?,?,?,?)";
java.sql.PreparedStatement statement = connection.prepareStatement(query);

statement.setString(1,request.getParameter("firstname"));
statement.setString(2,request.getParameter("surname"));
statement.setString(3,request.getParameter("address"));
statement.setString(4,request.getParameter("city"));
statement.setString(5,request.getParameter("postcode"));
statement.setString(6,request.getParameter("card_number"));
statement.setString(7,request.getParameter("card_type"));
statement.setString(8,request.getParameter("totalvalue"));

statement.executeUpdate();


long order_id = ((com.mysql.jdbc.Statement) statement).getLastInsertID();


String order_info_query = "INSERT INTO order_info VALUES ('',?,?,?)";

Enumeration products = basket.getProducts();
while(products.hasMoreElements())
{
Product product = (Product)products.nextElement();
statement = connection.prepareStatement(order_info_query );
statement.setLong(1,order_id);
statement.setInt(2,Integer.parseInt(product.getId()));
statement.setInt(3,product.getQuantity());
statement.executeUpdate();
}

statement.close();
connection.close();
basket.emptyBasket();
%>

Thanks for your order. It will be processed within 24 hours.
Please note that your Order Number is No: <%= order_id %>
<br/><br/>
<a href=" <%= response.encodeURL("shop-products.jsp") %> ">
<img src="images\toshop.gif" border="0" alt="Return to the Shop"></a>



</body>
</html>


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com