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 :

apostrophe dans requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pitoumad
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 83
    Par défaut apostrophe dans requête
    Bonjour le forum
    Je cherche à fiabiliser une requête sql pour qu'elle fonctionne même si les champs NOM et PRENOM contiennent des simples cotes : '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="select ID from INDIVIDUS where NOM like '".stripslashes($HTTP_POST_VARS['NOM_IND'])."' and IND_PRENOM like '".stripslashes($HTTP_POST_VARS['PRENOM_IND'])."'";
    mais ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] 
    Syntax error (missing operator) in query expression 'IND_NOM like 'DELL'ERA' and IND_PRENOM like 'DANIEL'LE'
    J'ai essayé avec stripslashes, peut être faut-il faire autrement, mais cela me dépasse ....
    Pouvez vous m'aider ?
    Merci par avance

  2. #2
    Membre émérite
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Par défaut
    Bonjour,
    Et si tu écrivais comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="select ID from INDIVIDUS where NOM like '".addslashes($HTTP_POST_VARS['NOM_IND'])."' and IND_PRENOM like '".addslashes($HTTP_POST_VARS['PRENOM_IND'])."'";

    Je te conseille tout de même de te documenter sur l'injection SQL avant de lancer complètement ton site. Une petite explication ici http://securite.developpez.com/faq/?..._sql_injection

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans SQL Server on double les quotes, c'est peut être pareil pour Access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="select ID from INDIVIDUS where NOM like '".str_replace("'","''", $_POST['NOM_IND'])."' and IND_PRENOM like '".str_replace("'","''",$_POST['PRENOM_IND'])."'";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé Avatar de pitoumad
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 83
    Par défaut
    Bonjour
    Le addslashes ajoute une \ de plus, ce n'est pas bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] 
    Syntax error (missing operator) in query expression 'IND_NOM like 'DELL\\\'ERA' and IND_PRENOM like 'DANIEL\\\'LE'
    Par contre le str_replace donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select IND_ID from INDIVIDUS where IND_NOM like 'DELL\''ERA' and IND_PRENOM like 'DANIEL\''LE'
    donc la bonne syntaxe serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("'","''", stripslashes($HTTP_POST_VARS['PRENOM_IND']))
    je teste et marque résolu si c'est bon ....

    A+
    et encore merci

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. Problème d'apostrophe dans requête!
    Par js8bleu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/11/2009, 13h27
  3. [AC-2000] Problème d'Apostrophe dans requête VBA
    Par etoileetoile dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/10/2009, 18h37
  4. apostrophe dans requête
    Par viny dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/02/2008, 06h20
  5. [MySQL] Problème d'apostrophes dans ma requête Update
    Par method_man dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/04/2007, 16h06

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