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

PyQt Python Discussion :

Echapper le simple quote dans une requête SQL


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    Par défaut Echapper le simple quote dans une requête SQL
    Bonjour,

    J'essaie désespérément de trouver une méthode pour 'échapper' un simple quote d'une requête SQL.
    Je récupère le texte de mes Combobox pour les concaténer (NewPlace). Le soucis est qu'une valeur de ma ComboBox contient un simple quote (ex: l'envers) donc j'ai une erreur Error near "envers": syntax error:...

    J'ai essayé le .replace mais sans succès...

    Ci-joint mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    #--- New tool location ---
                    self.cursor.execute("SELECT ID FROM idtools WHERE QR_TOOL='"+self.ComboToolIn.currentText()+"'")
                    self.ComboToolIn_rows = self.cursor.fetchall()
                    NewToolID=self.ComboToolIn_rows[0][0]
                    NewPlace = str(self.ComboLine.currentText()+" | "+self.ComboCell.currentText()+" | "+self.ComboToollocation.currentText())
                    print(NewPlace)
                    self.cursor.execute("UPDATE idtools SET WHERE_ARE_YOU='"+NewPlace+"' WHERE ID="+str(NewToolID))
                    self.dbconnexion.commit()
    Merci par avance pour votre aide.

    EDIT, je viens de trouver... il fallait bien faire un .replace() mais .replace("'", "''") pas .replace("'", "'\")

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par Supernatural Voir le message
    J'essaie désespérément de trouver une méthode pour 'échapper' un simple quote d'une requête SQL.
    Relisez la documentation!

    Pour faire une requête, on construit la partie SQL avec des %s ou des ? (suivant le pilote utilisé) passée en premier argument.
    Le deuxième argument étant un tuple d'objets dans leur type Python natif qui servira à remplacer les %s ou les ?.
    Si on fait comme çà, inutile "d'échapper" quoi que ce soit: le pilote fait le boulot avec ce qu'on lui donne pourvu que le type Python soit cohérent avec celui de la colonne de la table.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. [MySQL] Erreur dans une requête sql
    Par Goundy dans le forum PHP & Base de données
    Réponses: 37
    Dernier message: 30/01/2006, 16h08
  2. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44
  3. Plusieurs jointures dans une requête sql
    Par Pero dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2005, 20h59
  4. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 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