IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[JDBC]les apostrophes dans les chaines


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut [JDBC]les apostrophes dans les chaines
    bonjour,

    Y a-t-il une autre facon que les prepared statement pour effecteur une requète contenant une chaine de caractère qui peut contenir des apostrophes ?

    j'ai un code qui ressemble à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myinsert("INSERT INTO ...."+jtext.getText());
    et je viens de m'apercevoir grace à un plantage (chanceux ) que si la chaine contient des ' je suis chocolat !

    Y aurait-il quelque chose de simple qui ne m'impose pas une méthode par insert ?

    Merci

  2. #2
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Bonjour,

    PreparedStaement est ton ami
    cf FAQ--->http://java.developpez.com/faq/jdbc/...paredstatement

    Le PreparedStaement est fait pour éviter ce genre d'erreur, après je sais pas si j'ai trop compris ce que tu voulais
    Et je ne pense pas qu'il y ait d'autre solution

    @tte
    Pourquoi ca marche jamais?Vive le café!

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    il faut doubler les quotes

    genre replaceAll("'","''")

    mais bon, c'est plus simple avec les preparedStatement, parce que ya pas que les quotes comme caractères spéciaux ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    merci de ta réponse nicotine002, mais les prepared statement m'obligent à refaire 10-15 fonctions, donc je suis moyen chaud

    merci de ta réponse In, je vais essayer !
    Cependant, je me demandais à quels autres caractères penses tu ? tant qu'il sont entouré de ' ca devrait passer dans la requète ?

  5. #5
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    pour la liste des caractères spéciaux, ça dépend peut être de la base de données ...

    il faut prendre en compte les guillemets et les caractères de commentaires (# --) et les / peut etre

    Apres si toute ta chaine est entourée de ' ' ça doit passer peut etre, je ne suis pas vraiment sur

    mais une requete style

    INSERT INTO table (col1,col2) VALUES (#,'text');

    fera planter le truc si tu oublies de mettre '#' par exemple.

    Le truc c'est que les preparedStatement gèrent tout ça. Si tu veux utiliser des requetes normales, il faut juste faire un peu plus gaffe et traiter tous les cas particuliers...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bilatex : ignorer les apostrophes et les espaces dans le tri des entrées
    Par grafik.muzik dans le forum Bibliographies - Index - Glossaires
    Réponses: 0
    Dernier message: 24/05/2013, 20h55
  2. enlever les slashes devant les apostrophes dans les mails
    Par laurentSc dans le forum Langage
    Réponses: 10
    Dernier message: 16/11/2010, 18h57
  3. Supprimé les espaces et les '\n' dans une chaine
    Par EricStib dans le forum Général Python
    Réponses: 6
    Dernier message: 04/01/2009, 18h02
  4. Comment résoudre les apostrophes dans les requêtes SQL ?
    Par Chatbour dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/07/2007, 16h31
  5. Les polices dans les tables et les requêts
    Par zooffy dans le forum Access
    Réponses: 3
    Dernier message: 21/06/2006, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo