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 :

Problème de requête !


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut Problème de requête !
    Bonsoir,

    je suis en train de tenter de faire un simple insert sur une bdd mysql, mais pour le moment je suis plutot face à un mur ...
    J'explique : la connection à la base est correctement faite. Le problème réside dans la requête d'insertion que j'utilise. C'est la suivante :
    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 `sp_article` ("+
    		"`id_art`"+
    		"`titre_art`"+
    		"`contenu_art`"+
    		"`ctime_art`"+
    		") VALUES ('"+
    		"'', '"+
    		Escape.escapeSQL(titreSQL)+"', '"+
    		Escape.escapeSQL(html.toString())+"', '"+
    		ctime+"')";
    Le contenu de la 2nde valeur ajoutée est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "prem’s article"
    Le contenu de la 3eme valeur ajoutée est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "<table id=\"articleContainer\"><thead><tr><td class=\"h1\">prem’s artic......."
    L'erreur (qui est surprenante) est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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 'prem’s article', '<table id=\"articleContainer\"><thead><tr><td class=' at line 1
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
            .....
    Bien sur l'erreur est affichée lorsque je tente d'effectuer la requête par la commande statement.execute(query);
    Je me doute que l'erreur vient de la requête mais je ne comprends pas pourquoi; car j'échappe correctement les caractères " et ', non ?

    Merci de vos réponses

  2. #2
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    Pour information, "prem’s article" est écrit avec les codes unicode correspondant, soit "prem&#146 ;s&#160 ; article"
    Est-ce qu'il faut échapper également le caractère &#146 ; ?

  3. #3
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Tu peux montrer quelle valeur exactement a query une fois genere la chaine complete.

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    je n'ai pas mon code sous la main, je posterai ça ce soir. Mais je crois avoir ciblé le problème dans mon post précédent .. Je testerai

  5. #5
    in
    in est déconnecté
    Membre Expert 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
    Par défaut
    Tu es sûr que tu as besoin des antiquote autour du nom de la table et des colonnes ? Je ne crois pas ...

    sinon tu devrais utiliser un preparedStatement, ça t'éviteras d'échapper les caractères spéciaux comme prems article

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    Citation Envoyé par in
    Tu es sûr que tu as besoin des antiquote autour du nom de la table et des colonnes ? Je ne crois pas ...

    sinon tu devrais utiliser un preparedStatement, ça t'éviteras d'échapper les caractères spéciaux comme prems article
    Pour les antiquotes je ne sais pas ... J'ai vu ça dans les requêtes MySQL générées sous PhpMyAdmin.
    Si ça ne fait pas de mal, c'est que ça fait du bien

    je vais creuser à propos des preparedStatement, merci

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 27/08/2003, 15h32
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème de requètes concurentes
    Par Emmanuel.G dans le forum XMLRAD
    Réponses: 3
    Dernier message: 08/08/2003, 16h51
  4. Réponses: 2
    Dernier message: 16/07/2003, 14h40
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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