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

Requêtes MySQL Discussion :

Echappement des backslashes sous PHP ou phpMyAdmin


Sujet :

Requêtes MySQL

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut Echappement des backslashes sous PHP ou phpMyAdmin
    dans mon champ products_description j'ai du texte avec <br\>
    j'ai fait une requete pour trouver les enregistrements avec <br\>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *  FROM `products_description` 
    WHERE `products_description` REGEXP '<br\\>'
    Apparemment ca ne marche pas .Ca m'affiche aussi les enregistrements avec <br>
    je ne comprends rien
    merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    De toutes façons en XHTML c'est <br />, non ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    je sais , j'ai fais une connerie .faut que je corrige

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Comment la requête est-elle soumise à MySQL, via PHP ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Et un simple LIKE '%<br />%' ne serait-il pas suffisant ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    je cherche <br\> et pas <br />
    et
    j'ai fait SELECT * FROM `products_description` WHERE `products_description` REGEXP '<br\\>'
    ou
    SELECT * FROM `products_description` WHERE `products_name` LIKE '%<br\\>%'
    mais ca m'affiche les données avec aussi <br>alors que je voudrais que les données avec <br\>
    la requete je l'ai fait dans phpmyadmin

  7. #7
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Pourquoi veux-tu échapper l'antislash ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    avec ou sans cela ne marche pas non plus

  9. #9
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    A travers phpMyAdmin, il faut faire comme en PHP et échapper deux fois les backslashes (une fois pour PHP, une fois pour MySQL) :

  10. #10
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    ça marche enfin mais je ne comprends pas ton explication... trop balaise pour moi.
    pourquoi sous phpMyAdmin on passe par php ?

  11. #11
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    pourquoi sous phpMyAdmin on passe par php ?
    Parce que phpMyAdmin est écrit en PHP... et qu'apparemment il y a un petit trou dans leur gestion des échappements.

    Citation Envoyé par bigs3232 Voir le message
    ça marche enfin mais je ne comprends pas ton explication... trop balaise pour moi.
    PHP a besoin qu'on échappe les backslashes. Donc quand tu lui envoies <br\\\\>, il lit <br\\>, et transmet à MySQL.

    MySQL a également besoin qu'on lui échappe les backslashes. Donc, quand il reçoit <br\\> de PHP, il lit <br\>. A l'inverse, si PHP lui envoie <br\>, il considère que \> est un > échappé, donc il lit <br>.

  12. #12
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    je suis en admiration face à ta connaissance !!
    merci pour l'explication

  13. #13
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    désolé de vous embêter encore .j'aimerais maintenant faire en php car je voudrais remplacer <br\> par <br> du champ products_description.en php voici mon code
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function test{
    $product_query = tep_db_query("
      SELECT * 
      FROM `products_description` 
      WHERE `products_description` LIKE '%<br\\\\>%'
    ");
        $nb=0;
        while($product = tep_db_fetch_array($product_query)){
        $nb++;    
        echo $nb."==>".$product['products_description']."<br>";
        }
    en php ca ne marche pas que ce soit avec <br\\> ou <br\\\> ou <br\\\\>
    merci encore pour votre aide

  14. #14
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    qu'est-ce qui ne marche pas ? la requête renvoie des lignes ou pas ?

  15. #15
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    ca renvoie tous les lignes ayant que ce soit <br> ou <br\>.
    avec cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * 
    FROM `products_description` 
    WHERE `products_description` LIKE '%<br\\\\>%'
    j'ai 38 resultat en passant par le php avec le code ci-dessus, ca affiche 100 fois plus de resultat car <br> est pris en compte aussi .a mon avis

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/02/2008, 16h17
  2. Problème d'affichage des images sous apache/php
    Par kikoo_of_dijon dans le forum Apache
    Réponses: 9
    Dernier message: 03/11/2007, 16h24
  3. Rajouter des extensions sous PHP 5.2.1 après installation
    Par Tchupacabra dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 16/04/2007, 11h12
  4. [Cookies] interaction des sessions sous asp et php
    Par boss_gama dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2006, 10h26
  5. Comment relier des tables sous PHPmyAdmin
    Par BigDavid dans le forum Débuter
    Réponses: 1
    Dernier message: 26/07/2006, 14h14

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