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 :

Guillemets et quotes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Guillemets et quotes
    bien le bonjour tout le monde,
    je cherche à executer cette requete sous php (j'ai espacé volontairement, elle est fonctionnelle sous phpmyadmin):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE locations 
    SET descNE = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descNE, "cke_pastebin", ""),
    "<div id=",""),
    '\"',''),
    '\\>',''),
    '</div>',''),
    '\\',''),
    '<p>',''),
    '&nbsp;</p>','');
    mais quand je l'utilise sous php ($req = ... ; mysql_query...), la requete pose problème, notamment à cause du ; qu'elle comporte (apparemment, "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 '/p>', '')' at line 7"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req = "UPDATE locations 
    SET descFR = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descFR, 'cke_pastebin', '' ),
    '<div id=', ''),
    '\"',''),			  
    '\\>', ''), 
    '</div>', ''), 
    '\\', ''), 
    '<p>', ''), 
    '&nbsp;</p>', '')   ;"	;
    J'ai déjà inversé les ' et les "", doublé par endroit les " et les ', sans résultat, une idée ?

    merci d'avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par lemaraud Voir le message
    elle est fonctionnelle sous phpmyadmin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE locations 
    SET descNE = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descNE, "cke_pastebin", ""),
    "<div id=",""),
    '\"',''),
    '\\>',''),
    '</div>',''),
    '\\',''),
    '<p>',''),
    '&nbsp;</p>','');
    Si cette syntaxe fonctionne sous phpmyadmin, j'aurais fait comme ça à ta place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $req = '
    UPDATE locations 
    SET descNE = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descNE, "cke_pastebin", ""),
    "<div id=",""),
    \'\"\',\'\'),
    \'\\>\',\'\'),
    \'</div>\',\'\'),
    \'\\\',\'\'),
    \'<p>\',\'\'),
    \'&nbsp;</p>\',\'\')';
    J'ai simplement entouré ma chaîne de caractères $req avec des quotes simples et donc échappé tous les quotes simples de la requête de base.
    Ça fait beaucoup de '\' mais si ça a le mérite de fonctionner et donc de pouvoir t'aider...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 17
    Points
    17
    Par défaut j'connaissais pas mais...
    désolé, toujours une erreur (mais bon, je garde sous le coude cette technique )

    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 ''\','')' at line 7

    pour faire plus simple, j'ai enlevé la ligne qui posait problème avec le ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req = '
    UPDATE locations 
    SET descNE = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descNE, "cke_pastebin", ""),
    "<div id=",""),
    \'\"\',\'\'),
    \'\\>\',\'\'),
    \'</div>\',\'\'),
    \'\\\',\'\')' ;
    sans résultat...

    si ça peut aider, voici le code source de la page d'erreur :

    Erreur SQL !<br>UPDATE locations
    SET descFR = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descFR, "cke_pastebin", ""),
    "<div id=",""),
    '\"',''),
    '\>',''),
    '</div>',''),
    '\','')
    <br>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 ''\','')' at line 7

    du coup, j'ai essayé d'aller dans ton sens en modifiant :
    (descNE, \'cke_pastebin\', \'\'),
    \'<div id=\',\'\'),

    et nada

    merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 17
    Points
    17
    Par défaut La réponse (pour ceux que ça intéresse...)
    Mélangeant les 2 méthodes (merci l'ami) + le code php généré par phpmyadmin + une pause pour faire autre chose ^^, voici la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $req = "UPDATE locations ".
    "SET descNE = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(descNE, \"cke_pastebin\", \"\"),
    \"<div id=\", \"\"),
    \"\\\"\", \"\"),
    \"\\\\>\", \"\"),
    \"</div>\", \"\"),
    \"\\\\\", \"\"),
    \"<div>\", \"\"),
    \"<p>\", \"\"),
    \"</p>\", \"\"),
    \"&nbsp;\", \"\") ";
    des \ et des " à foison, mais bon.....

    merci

  5. #5
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Pour se simplifier la vie avec les quotes, on utilise généralement la syntaxe heredoc !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Merci
    Merci bien, j'vais étudier, ça sert à ça aussi les forums, la découverte de nouvelles manières de procéder...

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/02/2009, 17h36
  2. Guillemets et quotes
    Par Ismaël(l) dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/02/2008, 08h53
  3. [XSLT]Guillemets dans quote
    Par valal dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/12/2007, 16h24
  4. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

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