Pb requete sql update avec jdbc

Résolu/Fermé
Signaler
Messages postés
5
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008
-
Messages postés
5
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008
-
Bonjour a tous,

Je suis novice dans jdbc, donc je vous demanderais un peu d'indulgence ;)

Mon souci est que (avec eclipse) je recois une erreur d'execution (erreur de syntaxe dans la requete sql ) sur une ligne de code de mon programme java avec jdbc et serveur MySQL. Le souci est que lorsque j'execute la meme requete dans la fenetre de commandes MySQL, ma base de donnée est alimentée naturellement. Donc j'ai beau cherché sur tous les forums et tutoriels je n'ai tjs rien pu trouver pour m'aider.

voici la portion de code qui provoque l'erreur (sachant que tout le reste es nickel) vu qu'en l'enlevant, ou bien meme en la remplacant par une requete 'INSERT' par exemple, ca marche.

//...

Statement st=null;
try{
st=dbcon.obtenirStatement();
st.executeUpdate("UPDATE profil_membre" // la ligne provoquant l'erreur
+"SET password='"+password+"', nom='"+nom+"',"
+" prenom='"+prenom+"',date_de_naissance='"+date_de_naissance+"', ville='"+ville+"',"
+"pays='"+pays+"',"mail='"+mail+"'"
+"WHERE login='"+login+"'");
}

finally{if(st!=null)dbcon.FermerConnexion(st);}

return profil;
}//fin inscription


7 réponses

Messages postés
113
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
13 juin 2009
69
un petit espace devant "SET Password=" ?
2
essayes de la maniere suivante :

Statement st=null;

try{
st=dbcon.obtenirStatement();
st.executeUpdate("UPDATE profil_membre "
+"SET passord=password "+", "
+"nom=nom "+","
+"prenom=prenom "+","
+date_de_naissance=date_de_naissance "+", "
+"ville=ville "+","
+"pays=pays "+","
+mail=mail"
"
+"WHERE login=login");
}

finally{if(st!=null)dbcon.FermerConnexion(st);}

return profil;
}//fin inscription
0
essayes de la maniere suivante :

Statement st=null;

try{
st=dbcon.obtenirStatement();
st.executeUpdate("UPDATE profil_membre "
+"SET passord=password "+", "
+"nom=nom "+","
+"prenom=prenom "+","
+date_de_naissance=date_de_naissance "+", "
+"ville=ville "+","
+"pays=pays "+","
+"mail=mail"
"
+"WHERE login=login");
}

finally{if(st!=null)dbcon.FermerConnexion(st);}

return profil;
}//fin inscription
0
inspires toi de ce qui suit en utilisant PreparedStatement.

public void getConnection() {
try {
conn = DriverManager.getConnection("jdbc:odbc:Contactmdb"); // Contactmdb est different pour toi
} catch (SQLException se) { }

}

PreparedStatement pstmt = conn.prepareStatement("UPDATE AdressBook " +
"SET Title= ?," +
"Name= ? , " +
"TypePhone= ? , " +
"Addr1= ? , " +
"Addr2= ? , " +
"City= ? , " +
"State= ? , " +
"Zip= ? , " +
"Phone = ? " +
" WHERE Name=? and TypePhone=?");
pstmt.setString(1, c.getTitle());
pstmt.setString(2, c.getName());
pstmt.setString(3, c.getTypeph());
pstmt.setString(4, c.getAddr1());
pstmt.setString(5, c.getAddr2());
pstmt.setString(6, c.getCity());
pstmt.setString(7, c.getState());
pstmt.setString(8, c.getZip());
pstmt.setString(9, c.getPhone());
pstmt.setString(10, c.getName());
pstmt.setString(11, c.getTypeph());

pstmt.executeUpdate();

salut Tahar
0
Messages postés
5
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008

salut tsou, tout d'abord merci de ta réponse.

En fait ce que je mets entre '"++"' sont des variables java qui contiennent les informations saisies par l'utilisateur (elles sont deja remplies), et ce que tu me proposes affectera les chaines de caracteres () a mes variables MySQL.

A part ca j'ai aussi essayé avec ta syntaxe mais ca marche tjs pas meme erreur (en affectant des valeurs quelconques aux variables) : 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 '= 'zefze', nom='gregt',prenom='', date_de_naissance='hytjht', ville='bdfdfg', pa' at line 1

Je suis preneur de toute autre suggestion ;)
0
Messages postés
5
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008

salut yakov,

J'ai essayé comme tu m'as dit de mettre un espace devant mais que dalle!

Si tu connais vraiment la syntaxe, je te remercierais d'etre un peu plus précis sur ce que tu veux dire.

merci tout de meme
0
Messages postés
5
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008

Personne pour m'aider? :(
0
Messages postés
5
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008

Ok , je viens de trouver la solution. ouf!

Donc: il faudrait dans la syntaxe, mettre un espace avant SET et avant WHERE.


0