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

Langage PHP Discussion :

Impossible de lancer une requette PDO


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 89
    Points : 46
    Points
    46
    Par défaut Impossible de lancer une requette PDO
    Bonjour,

    Merci pour votre aide.

    Cela fait deux jours que je rame ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    $delta100 = "adressemail"; 
    $delta200 = "ASC" ;
    $delta300 = " where valide='oui' "; 
     
     
    $sql= $bdd->prepare('SELECT * from Users '.$bdd->quote($delta300).' ORDER by '.$bdd->quote($delta100).' '.$bdd->quote($delta200)');
    while($row = $sql->fetch())
    {
    $Recup_Adressemail  = $row["adressemail"];
    }
    $sql->closeCursor();
    Pouvez-vous me dire pourquoi ma requette ne remonte rien alors que si j'ecris ma requette comme ci-dessous elle fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $sql= $bdd->prepare('SELECT * from Users where valide='oui' ORDER by adressemail ASC');

    Merci d'avance pour votre aide precieuse.
    Cdlt.

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    La méthode quote() est là pour empêcher l'injection de commandes SQL dans les valeurs. Il ne faut pas l'utiliser si tu veux écrire du SQL.
    Au passage aussi prepare() ne sert à rien si tu n'as pas de paramètres dans la requête, utilise query().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 89
    Points : 46
    Points
    46
    Par défaut
    merci pour ta réponse.

    Mais alors comment faire pour avoir mes 3 variables dans la requête et que celle ci fonctionne et me ramène un résultat ?

    Merci d'avance
    Cdlt

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    enlève tes quote.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En gros, quote sert à protéger/filtrer des données. La seule donnée qu'il y ait dans ta requête c'est "oui".
    Donc si tu voulais vraiment protéger ta requête avec quote, ça donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $delta100 = "adressemail"; 
    $delta200 = "ASC" ;
    $delta300 = " where valide=".$bdd->quote('oui'); 
     
     
    $sql= $bdd->query('SELECT * from Users '.$delta300.' ORDER by '.$delta100.' '.$delta200.')';
    Mais bon, c'est un peu excessif : si la donnée est en dur dans le code, non modifiable et ne contient pas de caractère spécial, ni guillemet, ni chose de ce genre, ce ne pas nécessaire de la protéger.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Impossible de lancer une application graphique
    Par Arnaud F. dans le forum Debian
    Réponses: 3
    Dernier message: 28/11/2006, 11h58
  2. [VBA-W] Impossible de lancer une macro via AddIns.Add
    Par massif dans le forum VBA Word
    Réponses: 1
    Dernier message: 06/09/2006, 15h52
  3. Shell - Impossible de lancer une commande
    Par marocleverness dans le forum Linux
    Réponses: 2
    Dernier message: 05/06/2006, 10h14
  4. Lancer une requette sql sans que celà soit visible
    Par frechy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2006, 15h42
  5. [Eclipse 3.1] Impossible de lancer une application graphique
    Par pugnator dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 11/09/2005, 12h48

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