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

Bibliothèques tierces Python Discussion :

[mysql] Problème de caractères spéciaux


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut [mysql] Problème de caractères spéciaux
    Bonjour,

    J'essaie en ce moment le module pour mysql (MySQLdb) et j'ai un problème avec les ' :

    Je lis des informations dans un fichier et j'exécute ensuite une requête sur ma base de donnée, l'une des informations comporte un ' et j'ai une erreur lorsque j'exécute la requête :

    _mysql_exceptions.ProgrammingError: (1064, "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 'est un test'' at line 1")

    la chaine que je voulais rentrer dans ma base de données est "c'est un test".

    J'ai essayé de le passer en unicode avant d'executer la requète mais ca ne change rien.

    Une idée ?
    merci !

  2. #2
    Membre actif Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 209
    Points
    209
    Par défaut
    tu as essayé avec un caractère d'échappement?
    \' a priori

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Oui bien sur j'ai essayé ca ne change rien, j'ai essayé en mettant directement le code ascii ou unicode (\x022 ou un truc du genre) mais rien a faire.

    La seule chose que j'ai réussi a faire c'est a remplacer le ' par " (en mettant le codage ascii) mais bon c'est pas ca que je veux.

    le problème vient lors de l'exécution de la requête, MySQLdb tronque la chaine dès qu'il voit un ' (alors qu'il ne le fait pas avec ").

    je sèche...

  4. #4
    Membre actif Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 209
    Points
    209
    Par défaut
    tu montrerais ta requête?

  5. #5
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    essaie en mettant ta chaine entre des triple quote.

    ex : '''c'est un test''' mais ca lévera encore une erreur dans ta requete.
    il faut sans doute couper ta chaine.

    ex : 'c' + '\'est un test' ou 'c\'est un test'

    ++

  6. #6
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    merci de vos reponses,

    La forme de ma requète (je ne suis pas sur mon pc):

    "insert into table (nom1,nom2) values (variable1,variable2)"

    ou variable1 et variable2 sont des chaines obtenues par une lecture de fichier. (evidemment table existe et a la bonne structure)

    Il me semble avoir déja essayé avec les triples quotes mais je n'en suis pas certain, j'essairai ce soir quand je serai devant mon pc.

    edit : après avoir ecrit ma requète précédemment je me demande si le problème ne vient pas de la variable mais de la requète que python couperait lorsqu'il voit un '. Peut être qu'en protégeant la requète avec des triples quotes...

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 037
    Points
    31 037
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Arrakis Voir le message
    "insert into table (nom1,nom2) values (variable1,variable2)"
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string="insert into table (nom1,nom2) values (\"%s\", \"%s\")" % (variable 1, variable 2)
    cursor.execute(string)

  8. #8
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par Sve@r
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string="insert into table (nom1,nom2) values (\"%s\", \"%s\")" % (variable 1, variable 2)
    cursor.execute(string)
    C'etait ca... merci beaucoup !

Discussions similaires

  1. Problème encodage caractéres spéciaux MYSQL avec juste &
    Par EDrequest dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/05/2010, 10h06
  2. [MySQL] Problèmes avec caractères spéciaux
    Par brokengillou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/04/2006, 17h02
  3. Probléme encodage caractéres spéciaux MYSQL
    Par FoxLeRenard dans le forum Installation
    Réponses: 1
    Dernier message: 20/02/2006, 12h10
  4. [SOAP] problème de caractères spéciaux
    Par ep31 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 02/12/2005, 17h43
  5. [SQL Server] problème de caractères spéciaux
    Par mbibim63 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 02/06/2005, 18h38

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