Pb requete sql update avec jdbc

Résolu/Fermé
nickybutterfly Messages postés 5 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 13 septembre 2008 - 24 août 2008 à 18:37
nickybutterfly Messages postés 5 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 13 septembre 2008 - 13 sept. 2008 à 01:15
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


A voir également:

7 réponses

yakov Messages postés 113 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 13 juin 2009 75
24 août 2008 à 23:50
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nickybutterfly Messages postés 5 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 13 septembre 2008
25 août 2008 à 13:32
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
nickybutterfly Messages postés 5 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 13 septembre 2008
25 août 2008 à 13:36
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
nickybutterfly Messages postés 5 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 13 septembre 2008
28 août 2008 à 02:16
Personne pour m'aider? :(
0
nickybutterfly Messages postés 5 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 13 septembre 2008
13 sept. 2008 à 01:15
Ok , je viens de trouver la solution. ouf!

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


0