Requete sql INSERT

Signaler
Messages postés
1
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
23 mai 2008
-
Messages postés
35
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2008
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
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
Messages postés
35
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2008

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