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

JavaScript Discussion :

Echapper Apostrophe construction requête


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut Echapper Apostrophe construction requête
    Bonjour,
    j'ai une fonction javascript qui doit me permettre de construire une requête SQL.
    Voici la partie de la requête qui pose problème (je précise que la requête est correcte car testée dans PhpMyAdmin ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CONCAT(c.firstname, ' ', c.lastname, '<br>', ad.address1, '<br>',ad.address2, 
    '<br>', '(', ad.other,')', '<br>', ad.postcode, '<br>', 
    ad.city, '<br>', cl.name) AS client,
    En bref, je concatene toutes les infos clients (nom, prenom , adresse, etc...). Mais le champ "other" doit être entre parenthèses, et c'est là que ça coince...
    Et voici mon code javascript pour obtenir cette partie de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    text+='CONCAT(c.firstname, ' ', c.lastname, \'<br>\', ad.address1, \'<br>\',ad.address2, \'<br>\',';
    text+='\'(\'';
    text+=', ad.other,';
    text+='\')\'';
    text+=' \'<br>\', ad.postcode, \'<br>\', ad.city, \'<br>\', cl.name) AS client, ';
    ...autant le \ pour échapper les ' au niveau des \'<br>\' fonctionne, autant au niveau des parenthèses ( et ) cela pose problème...Et je ne vois pas ce qui cloche

    Merci beaucoup

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Il n'y a aucune raison que ça ne marche pas.

    C'est surtout que t'en as oublié ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text+='CONCAT(c.firstname, ' ', c.lastname, \'<br>\', ad.address1, \'<br>\',ad.address2, \'<br>\',';
    Sinon, le plus simple est de mettre des doubles quotes (" ") pour entourer tes chaines : text+="CONCAT(c.firstname, ' ', c.lastname, '<br>', ad.address1, '<br>',ad.address2, '<br>'" etc.

    Comme il n'y a pas de différence de perf entre les simples et doubles quotes (contrairement à PHP par exemple) tu peux utiliser les deux indifféremment.

    Par contre j'espère que tu es conscient que c'est mal de faire une requête SQL en javascript ? Question sécurité c'est vraiment la dernière chose à faire.

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

Discussions similaires

  1. Construction requête => longue exécution
    Par aurelie83 dans le forum SQL
    Réponses: 6
    Dernier message: 22/10/2008, 12h02
  2. apostrophe avec requête
    Par osia1 dans le forum VBA Access
    Réponses: 5
    Dernier message: 29/04/2008, 17h09
  3. apostrophe dans requête
    Par viny dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/02/2008, 06h20
  4. [SQL] Problème construction requête SQL - PHP
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/06/2007, 16h50
  5. apostrophe et requête
    Par carelha dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/10/2006, 10h22

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