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 :

Comment filtrer avec une variable chaine de caractere ?


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 23
    Points
    23
    Par défaut Comment filtrer avec une variable chaine de caractere ?
    Salut à tous, j'ai une requette basique qui ne marche pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $var='chaine';						  
    $sql = 'SELECT * FROM `table`  where `attribut` ='.$var.' ';
    attribut est de type varchar, si $var est un entier ça s'execute normal mais lorsqu'il s'agit d'une chaine de caractere je suis confronté à ce message:

    Erreur SQL !
    SELECT * FROM `table` where `attribut` =chaine
    Unknown column 'chaine' in 'where clause'

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Lorsqu'une requête tombe en erreur, la première chose à faire pour détecter l'origine de l'erreur est d'afficher la requête qui vient d'être exécutée.
    Essayez... l'erreur vous sautera aux yeux

    Une piste : une chaine de caractères doit être encadrée de guillemets '
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Avant de poster mon problème je savait que c'est un problème de (') et voiçi tous ce que j'avais essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    1 $sql = 'SELECT * FROM `table`  where `attribut` ='.$var.' ';
    2 $sql = 'SELECT * FROM `table`  where `attribut` =".$var." ';
    3 $sql = 'SELECT * FROM `table`  where `attribut` ='".$var."' ';  
    4 $sql = 'SELECT * FROM `table`  where `attribut` ='$var' ';  
    5 $sql = 'SELECT * FROM `table`  where `attribut` =('%s'",$var)';
    Aucune n'a marché, j'ai meme essayé avec $var="chaine" , alors si tu me souffle directement la bonne réponse je serai trés content

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Comme ça peut-être...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT * FROM `table`  where `attribut` =\''.$var.'\'';
    mais je ne pratique pas le PHP (mais activement Google)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Exact ça marche, merci beaucoup Monsieur.

  6. #6
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,

    ça peut représenter un trou de sécurité (notamment les injections SQL) si vous concaténez vos variables dans vos requêtes.. Suivant l'API utilisé mysqli ou PDO, pensez à utiliser les requêtes préparées.
    Le bienfait n'est jamais perdu

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

Discussions similaires

  1. Filtrer une table avec une variable chaine
    Par yo.ourti dans le forum SAS Base
    Réponses: 3
    Dernier message: 17/04/2014, 17h21
  2. Comment filtrer dans une variable
    Par Jihane75 dans le forum Deski
    Réponses: 1
    Dernier message: 30/08/2010, 14h21
  3. Comment filtrer avec une case insensitive ?
    Par savoir dans le forum Débuter
    Réponses: 2
    Dernier message: 06/09/2007, 11h09
  4. Comment filtrer avec une liste déroulante
    Par nicou50 dans le forum Access
    Réponses: 16
    Dernier message: 02/09/2006, 02h04
  5. [MySQL] requete avec variable chaine de caractere
    Par infotron dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/10/2005, 22h03

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