Bonjour,

j'ai écrit un petit programme de test qui permet d'insérer des données dans un BD Mysql via java et ça marche bien.

Voici le prgme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
import java.net.*;
import java.sql.*;
import java.io.*;
 
 
public class Inscription{
 
    public static String UserBD = "root";
    public static String UserPasswordBD ="";
    public static String PathAccessBD ="jdbc:odbc:manageuser";
 
    public Inscription(){
        try{
    Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
    System.out.print("salut!! Ir justin g vous informe que le chargement du pilote a recu " + "\n");
        }
        catch(ClassNotFoundException e){
            System.out.print("erreur lors du chargement du pilote");
 
        }
    }
 
 
    public static void main(String args[])throws SQLException, ClassNotFoundException{
        Inscription charpilot=new Inscription();
 
           try{
               Connection connex = DriverManager.getConnection(PathAccessBD,UserBD,UserPasswordBD);
 
               Statement state = connex.createStatement();
 
               String requete =" Insert into client values('','kazadi','justin','27','kabinda 115 commune/kin','00243813486120','002438953880','justkazadi@gmail.com','Célibataire','Bonjour,je souhaite faie une reservation')";
 
               int res = state.executeUpdate(requete);
 
               System.out.println("le nbre est de:" +res);
 
                }catch(Exception e){
                    System.out.println("\n" + "Erreur!!!" + e.getMessage());
 
                } 
    }
}
Mon souci ,c'est d'écrire (ajouter une fonction à cette classe) une fonction


(qui sera un web service pour gérer l'enregistrement des utilisateurs sur une plate-forme.)
Et c'est là que j'ai cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Exception in thread "main" java.sql.SQLException: [MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]Unknown column 'nm' in 'field list'
Si je comprends bien, le compilateur traite les paramètres de la fonction dans la requête comme les noms des colonnes et non comme valeur.



Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 
import java.net.*;
import java.sql.*;
import java.io.*;
 
 
public class Inscription{
 
    public static String UserBD = "root";
    public static String UserPasswordBD ="";
    public static String PathAccessBD ="jdbc:odbc:manageuser";
 
    public Inscription(){
        try{
    Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
    System.out.print("salut!! Ir justin g vous informe que le chargement du pilote a recu " + "\n");
        }
        catch(ClassNotFoundException e){
            System.out.print("erreur lors du chargement du pilote");
 
        }
    }
    public int Enregistrer(String nm, String pr, String ag, String adress, String teleph1, String teleph2, String mail, String civilit, String messag)throws SQLException, ClassNotFoundException{
 
        int ok_inscription=1;
        int nok_inscription=0;
        Connection connex=null;
                try{
                 connex = DriverManager.getConnection(PathAccessBD,UserBD,UserPasswordBD);
 
                }catch(Exception excep){
                    System.out.println("\n" + "Erreur!!!" + excep.getMessage());
 
                } 
 
               Statement state = connex.createStatement();
 
               String requete ="Insert into client (idclient,nom,prenom,age,adresse,telephone1,telephone2,email,civilite,message) values('',nm,pr,ag,adress,teleph1,teleph2,mail,civilit,messag)";
 
               int res = state.executeUpdate(requete);
               if(res==1){
                   return ok_inscription;
               }
               else{
                   return nok_inscription;
               }    
    }
    public static void main(String args[])throws SQLException, ClassNotFoundException{
 
        int resultat;
        String a = "kabedi";
        String b = "marthe";
        String c = "32";
        String d = "Barumbu 134";
        String e = "0897654332";
        String f = "00243856743452";
        String g = "kabedi.marthe@gmail.com";
        String h = "Mariée";
        String i ="Hello word";
 
        Inscription my_inscript=new Inscription();
 
        resultat = my_inscript.Enregistrer(a,b,c,d,e,f,g,h,i);
 
        System.out.println("Voici le resultat:" + resultat);
    }
}
merci d'avance.