Requete sql INSERT

miktou Messages postés 1 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 23 mai 2008 - 23 mai 2008 à 01:08
hluder Messages postés 35 Date d'inscription lundi 23 octobre 2006 Statut Membre Dernière intervention 6 juin 2008 - 6 juin 2008 à 12:40
bonjour,
je suis en train d'inserer des données dans la base mysql en utilisant une classe design pattern DAO et non pas avc la servlet. Est ce que quelqu'un pourrait m'aider pour debuguer ce morceau de code
 public int insereNouveauClient(Client client) throws SQLException{
      Connection cnx = getConnexion();
      //Statement st = null;
      Statement st = cnx.createStatement();
      String requeteSQL = "INSERT INTO Client VALUES(NULL,'");
      requeteSQL += client.getNom().replaceAll("'","\\'");
      requeteSQL += "','";
      requeteSQL += client.getMotdePasse().replaceAll("'","\\'");
      requeteSQL += "','";
      requeteSQL += client.getAdresse().replaceAll("'","\\'");
      requeteSQL += "','";
      requeteSQL += client.getVille().replaceAll("'","\\'");
      requeteSQL += "','";
      int nbLignes = st.executeUpdate(requeteSQL);
      Resultset rs = st.executeQuery("SELECT LAST_INSERT_ID()");
      if(rs.next()){
          int clef = rs.getInt(1);
          client.setRefClient(clef);
      }
      rs.close();
      st.close();
l'erreur se situe dans la requeteSQL après VALUE mais je ne sais pas comment faire. Merci.

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 mai 2008 à 07:14
Salut,

Il te d'imaginer la tête de ta requête SQL au final pour comprendre...

  String requeteSQL = "INSERT INTO Client VALUES(NULL,'")
;

C'est quoi cette parenthèse fermante ???
______________________________________
DarK Sidious
0
hluder Messages postés 35 Date d'inscription lundi 23 octobre 2006 Statut Membre Dernière intervention 6 juin 2008
6 juin 2008 à 12:40
oui retire simplement la parenthèse fermante

"INSERT INTO Client VALUES(NULL,'");

et rajoute là a la fin

mais la meilleur technique se serait de faire ta string en une fois

String requeteSQL = "INSERT INTO Client VALUES(NULL,'"+ client.getNom().replaceAll("'","\\'")+"','"
+client.getMotdePasse().replaceAll("'","\\'")+"','"
+client.getAdresse().replaceAll("'","\\'")+"','"
+client.getVille().replaceAll("'","\\'")+"')";

------------------------------    
Nivraë - just her
0
Rejoignez-nous