Salut tout le monde,
une question simple : comment je peux remplacer les quotes ' dans une string pour pas avoir d'erreur SQL.
Merci
Jul
Salut tout le monde,
une question simple : comment je peux remplacer les quotes ' dans une string pour pas avoir d'erreur SQL.
Merci
Jul
Si tu n'utilises pas les Prepared Statements, tu peux utiliser une classe que j'ai bricolé pour passer des chaines de caractères validées au serveur MySQL :
C'est un code un peu lourd, je le concède (je suis pas un gourou du java), mais c'est offert gracieusement par la maison et ça marche !!
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 import java.util.*; public class StringMySQLConverter { public String chaineAConvertir; //****************************************************************** public StringMySQLConverter(String chaineAConv ) { chaineAConvertir = chaineAConv; } //****************************************************************** public String adapterPourMySQL() { char [] mot; mot = chaineAConvertir.toCharArray(); Vector leMot = new Vector(); for( int i=0; i<mot.length; i++) leMot.add( ""+mot[i] ); Vector nouvMot = new Vector(); int j=0; for (int i=0; i<leMot.size(); i++) { if ( ((String)leMot.elementAt(i)).equals("\'") ) { nouvMot.insertElementAt("\\",j); j++; nouvMot.insertElementAt( (String)leMot.elementAt(i) , j); } else if ( ((String)leMot.elementAt(i)).equals("\\") ) { nouvMot.insertElementAt("\\",j); j++; nouvMot.insertElementAt( (String)leMot.elementAt(i) , j); } else if ( ((String)leMot.elementAt(i)).equals("\"") ) { nouvMot.insertElementAt("\\",j); j++; nouvMot.insertElementAt( (String)leMot.elementAt(i) , j); } else { nouvMot.insertElementAt( (String)leMot.elementAt(i) , j); } j++; } StringBuffer chaineARenvoyer = new StringBuffer(); for (int h=0; h<nouvMot.size(); h++) chaineARenvoyer.append( (String)nouvMot.elementAt(h) ); return chaineARenvoyer.toString(); } //****************************************************************** }
;-)
A utiliser de la sorte :
Cela transforme, entre autres, "L'érudition" en "L\'érudition", et voilou !
Code : Sélectionner tout - Visualiser dans une fenêtre à part chaineOK = new StringMySQLConverter( chaineKO ).adapterPourMySQL();
;-)
Merci pour ta réponse, ca marche super. Maintenant j'ai un autre problème avec l'encodage en java, je vais ouvrir un autre topic.
Jul
Penses à cliquer sur le bouton "résolu" !!
;-)
Partager