Rechercher : dans
Par :

Pb requete sql update avec jdbc

Dernière réponse le 13 sep 2008 à 01:15:00 nickybutterfly, le 24 aoû 2008 à 18:37:25 
 Signaler ce message aux modérateurs

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


les machines sont toujours pleines de surprises, on n'est jamais trop vigilants face à elles.

Configuration: Windows XP
Firefox 2.0.0.16

Meilleures réponses pour « pb requete sql update avec jdbc » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

yakov, le 24 aoû 2008 à 23:50:22
  • +1

Un petit espace devant "SET Password=" ?

Répondre à yakov

2

tsou, le 25 aoû 2008 à 07:02:25

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

Répondre à tsou

3

tsou, le 25 aoû 2008 à 07:05:01

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

Répondre à tsou

4

tsou, le 25 aoû 2008 à 07:20:24

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

Répondre à tsou

5

nickybutterfly, le 25 aoû 2008 à 13:32:49

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 ;) les machines sont toujours pleines de surprises, on n'est jamais trop vigilants face à elles.

Répondre à nickybutterfly

6

nickybutterfly, le 25 aoû 2008 à 13:36:12

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 les machines sont toujours pleines de surprises, on n'est jamais trop vigilants face à elles.

Répondre à nickybutterfly

7

nickybutterfly, le 28 aoû 2008 à 02:16:40

Personne pour m'aider? :(

Répondre à nickybutterfly

8

 nickybutterfly, le 13 sep 2008 à 01:15:00

Ok , je viens de trouver la solution. ouf!

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


les machines sont toujours pleines de surprises, on n'est jamais trop vigilants face à elles.

Répondre à nickybutterfly