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

avec Java Discussion :

Comment échapper les apostrophes en Java


Sujet :

avec Java

  1. #1
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut Comment échapper les apostrophes en Java
    j'ai un champ varchar qui peut contenir des apostrophes alors l'instruction SQL me retourne une exception
    jdbc4.MySQLSyntaxErrorException:
    code d'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String query = "INSERT INTO article (titre,article,image,matricule_auteur,code_domaine_domaine,num_mag_magazine) VALUES (?,?,?,?,?,?)";			
    		try (PreparedStatement stat = cnx.prepareStatement(query)){
     
    			stat.setString(1,titre);
    			stat.setString(2,article);
    			stat.setBinaryStream(3, fis);
    			stat.setInt(4,auteur);
    			stat.setInt(5,domaine);
    			stat.setInt(6,mag);
     
    			stat.executeUpdate();
    code modifiaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String query = "UPDATE article set titre='"+txtTitre.getText()+"',"
    						+ "article='"+txtArticle.getText()+"',"
    								+ "image="+fis+","
    										+ "code_domaine_domaine="+codeDom+","
    												+ "num_mag_magazine="+cmbMag.getSelectedItem().toString()+","
    														+ "matricule_auteur="+mat+" WHERE n_article="+numArt;	
     
    			stat = cnx.prepareStatement(query);
    			stat.executeUpdate();

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Ta requête d'insertion me semble correcte avec du databinging pour éviter le problème en question.
    Cependant, ta requête d'update n’utilise pas le databinging et et donc semble à ce problème. Pourquoi ne fait tu pas la même chose sur celle-ci ?

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Pareil...

    Il faut utiliser les PreparedStatement, non seulement tu éviteras ces problèmes mais en plus tu éviteras le risque d'injection.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre habitué Avatar de Hind4Dev
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 428
    Points : 140
    Points
    140
    Par défaut
    merci , c'était le prepared statement qu'il fallait

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

Discussions similaires

  1. Débutant : comment échapper les caractères venant d'une base de donnée ?
    Par powerwave dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/11/2014, 16h57
  2. [AC-2007] Comment échapper les (') dans une requête sous ACCESS 2
    Par yfchauer dans le forum IHM
    Réponses: 4
    Dernier message: 13/04/2013, 19h52
  3. [AC-2007] Comment échapper les (') dans une requête sous ACCESS
    Par yfchauer dans le forum IHM
    Réponses: 8
    Dernier message: 02/04/2013, 21h26
  4. comment gerer les types Objet(java)
    Par karray_ali dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/05/2006, 23h27
  5. Réponses: 5
    Dernier message: 15/02/2005, 10h32

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