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 :

une requete SQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Par défaut une requete SQL
    Bonjours

    j'ai un problème avec la requete Sql je veux utiliser des variables dans la requête mais je suis bloqué voici la ligne de code qui me pose problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query('SELECT * FROM ram1 WHERE 'Orig'=='$_POST['villeD']'' and 'Dest'== $_POST['villeA'] ORDER BY id DESC LIMIT 0, 10');
    Sachant que le formulaire n'existe pas dans la page qui contient ce code mais dans une autre page qui nous amène dans celle ci lorsque le formulaire est rempli.

    merci d'avance;

  2. #2
    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
    Ce sont des = simples et il faut echapper tes chaînes avec mysql_real_escape_string.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query("SELECT * FROM ram1 WHERE Orig='" . mysql_real_escape_string($_POST['villeD']) . "' AND Dest = " . mysql_real_escape_string($_POST['villeA']) . " ORDER BY id DESC LIMIT 0, 10");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Par défaut
    Bonjour

    j'ai essayer votre code mais il m'affiche l'erreur suivante

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in


    Merci pour votre reponse

  4. #4
    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
    mysql_real_escape_string() est la version pour l'extension mysql_xxx.
    C'est à adapter avec l'extension/bibliotheque que tu utilises, mais il faut echapper tes chaines.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 60
    Par défaut
    le problème viens aussi de tes guillemets (en plus de tes =).
    pour mettre une variable dans une chaine délimitée par des apostrophes ('), utilise la concaténation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query('select * from table where champ = \''.$_POST["index"].'\'');
    ou alors délimite ta chaine par des guillemets doubles (")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query("select * from table where champ = '$_POST[\"index\"]'");
    tout en faisant gaffe aux guillemets de $_POST['yop'], tout dépends si les magic_quotes sont activés ou pas.

    Pour être sûr de ne pas se tromper, je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query("select * from tabl where  champ = '". $_POST['plop'] ."'");
    c'est pas tres optimisé tout ça mais ça permet de moins se planter

  6. #6
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    Juste un petit conseil. j'éviterais à ta place de passer directement des variables $_POST en requête.. C'est trop dangereux à mon goût.
    En ce qui me concerne je vérifie toujours ce que ces variables contiennent nature/format/contenu et si tout et conforme alors je les passe dans mes traitements, sinon je log et dehors! y a rien à voir

Discussions similaires

  1. pb d'execution d'une requete sql
    Par pit9.76 dans le forum Bases de données
    Réponses: 2
    Dernier message: 26/06/2004, 12h03
  2. Réponses: 2
    Dernier message: 03/05/2004, 12h13
  3. date d'une requete sql
    Par innosang dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/04/2004, 09h27
  4. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51
  5. Une requete SQL unpeux difficile !!
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/03/2004, 12h32

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