java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
Bonjour à tous,
Je cherche à faire un projet web avec un accès à une BDD via JDBC.
Je réalise à travers un formulaire un "Insert into" via un preparedStatement.
Mais à chaque fois, mon code lance une sqlException au niveau de la ligne 27. Avec cette phrase que je ne comprend pas: "Parameter index out of range (1 > number of parameters, which is 0)."
J'ai rentré les valeurs de mes paramètres en dur pour disculper la partie web de mon projet.
Ya t il une âme charitable pour m'aider?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
//import java.sql.Statement;
import model.Conseiller;
public class RequeteSQL {
public static void sauverEnBase(Conseiller cons) {
String url="jdbc:mysql://localhost/agence";
String login="root";
String passwd="";
Connection cn=null;
PreparedStatement st=null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver ok");
cn= DriverManager.getConnection(url, login, passwd);
System.out.println("Connexion réussie");
String sql="INSERT INTO `conseiller`(`id`, `nom`, `prenom`, `age`) VALUES ('?,?,?,?')";
st=cn.prepareStatement(sql);
System.out.println("so far so good");
st.setInt(1, 5);
st.setString(2, "nom");
st.setString(3, "prenom");
st.setInt(4, 55);
st.executeUpdate(sql);
System.out.println("toujours là");
}catch (SQLException e) {
e.printStackTrace();
}catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
try {
cn.close();
st.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
} |