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

PHP & Base de données Discussion :

echapement dans un variable pour une requete préparée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2019
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2019
    Messages : 45
    Par défaut echapement dans un variable pour une requete préparée
    Bonjour,

    J'ai une requête préparée dans laquelle j'ai une variable. Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cnx->prepare("SELECT COUNT(*) as count FROM liens WHERE content LIKE '{$data->content}' ")
    Sauf que dans ma "variable" $data->content je dois échapper des " et des '. Je ne vois comment faire.

    Pourriez-vous me dire comment je peux faire ?

    Merci pour votre

  2. #2
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 461
    Par défaut
    Bonjour.
    Ce que tu présentes comme une requête préparée n'y ressemble pas.
    Un requête préparée, c'est plutôt ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) as count FROM liens WHERE content = ?
    ... et il n'y a rien à échapper.
    Cordialement.

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2019
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2019
    Messages : 45
    Par défaut
    c'est bon j'ai résolu mon probleme avec PDO::Quote; Je ne savais pas que PDO pouvais protéger une une chaine de caractère des échappements.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voici LES BONNES syntaxes pour préparer une requête PDO :

    1- Avec "placeholder nommé" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $pdo_select = $cnx->prepare("SELECT COUNT(*) as count FROM liens WHERE content LIKE :content");
    $pdo_select->execute(array( 
       ':content' => {$data->content}
       ));
    2- Avec "placeholder anonyme" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $pdo_select = $cnx->prepare("SELECT COUNT(*) as count FROM liens WHERE content LIKE ?");
    $pdo_select->execute(array( 
       {$data->content}
       ));
    3- Avec "bindValue" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $pdo_select = $cnx->prepare("SELECT COUNT(*) as count FROM liens WHERE content LIKE :content");
    $pdo_select->bindValue(':content', {$data->content}, PDO::PARAM_STR);
    $pdo_select->execute();
    SELECT COUNT(*) as count ... : "count" est un mot réservé en SQL.
    A remplacer par : SELECT COUNT(*) as total ....
    Dernière modification par rawsrc ; 01/02/2020 à 13h37.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/03/2017, 00h29
  2. Comment introduire LIKE '?%' dans $sql pour une requete SELECT préparée ?
    Par brico-web dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 10/08/2014, 11h42
  3. [AC-2010] Date dans un formulaire pour une requete
    Par toshiro74 dans le forum IHM
    Réponses: 0
    Dernier message: 17/06/2014, 08h59
  4. Réponses: 0
    Dernier message: 07/10/2011, 11h43
  5. [OCI] une erreur dans l'execution pour cette requete SQL
    Par Abdelkaoui dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 14/09/2007, 12h29

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