nikos
nikos

Reputation: 3013

SQL 1064 Syntax Error using a JDBC prepared statement

I have:

String query = "INSERT INTO Basestations VALUES(?, ?, ?, ?, ?, ?, ?,"
               + "?, ?, ?, ?, ?, ?, ?, ?)";                  


PreparedStatement prep = conn.prepareStatement(query);

prep.setInt(1, profile.getNetworkId());
prep.setInt(2, profile.getBaseStationId());
prep.setInt(8, profile.getLoadLevel());
prep.setInt(11, profile.getPositionX());
prep.setInt(12, profile.getPositionY());
prep.setInt(13, profile.getPort());

prep.setDouble(3, profile.getSignalStrength());
prep.setDouble(4, profile.getFrequency());
prep.setDouble(6, profile.getMaxBitrate());
prep.setDouble(7, profile.getGuaranteedBitrate());
prep.setDouble(10, profile.getRange());

prep.setString(5, profile.getNetworkType());
prep.setString(9, profile.getProvider());
prep.setString(14, profile.getCharging());

prep.setBoolean(15, true);


prep.executeUpdate(query);

and i am getting:

INFO: SQL Exception: INFO: State : 42000 INFO: Message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' at line 1 INFO: Error : 1064

what could be wrong?

Upvotes: 2

Views: 2668

Answers (3)

Frankie
Frankie

Reputation: 25165

The main error is here:

 // incorrect
 prep.executeUpdate(query);

 // correct
 prep.executeUpdate();

But please try to put your SQL in the following form:

UPDATE table_name(field1, field2, field3) VALUES(?, ? ,?)

This will prevent your code from breaking if there is an update to the table.

Upvotes: 1

Ernesto Campohermoso
Ernesto Campohermoso

Reputation: 7381

In your last line you don't need pass the variable query.

So change

 prep.executeUpdate(query);

For:

 prep.executeUpdate();

Upvotes: 2

Anthony Grist
Anthony Grist

Reputation: 38345

You're passing an string representing an invalid SQL statement to the executeUpdate() method when you don't need to. Try just doing prep.executeUpdate();.

Upvotes: 9

Related Questions