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 :

PDO et exécution de requête paramétrée (aucun résultat ne s'affiche) [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 90
    Par défaut PDO et exécution de requête paramétrée (aucun résultat ne s'affiche)
    Bonjour à tous,
    j’aimerais afficher le résultat d'une requête paramétrée, lorsque je remplace mes paramètres par des valeurs m'affiche les valeurs mais lorsque j'utilise mes paramètres m'affiche un tableau vide.
    pour la connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try
          {
    	 $cnx = new PDO('mysql:host='.$serveur.';dbname='.$bdd,$user,$pass);
    	 $cnx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
          }
        catch(Exception $e) //PDOException 
          {
    		 $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
              die($msg);
          }
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
     
     if(isset($_POST) && !empty($_POST['numcarte']) && !empty($_POST['numpol']))
     {
      $numcarte = htmlspecialchars($_POST['numcarte']);	
      $numpol = htmlspecialchars($_POST['numpol']);	
     
      $q = array( ':pnumpol' => $numpol,
                  ':pnumcart' => $numcarte);
      $sql = 'SELECT * FROM membre WHERE numpol =:pnumpol AND numcart =:pnumcart';
      $req = $cnx->prepare($sql);
      $req->execute($q); 
      $data = $req->fetchAll(); // pour récupérer le resultat
     
     if($data !== false)
       {
    	echo 'Les données sont disponibles ici :';
    	print_r($data);
       }
    else
      {
    	echo 'Aucun résultat disponible.';
      }
     }
     
    ?>
    merci pour votre aide

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fetchAll renvoie toujours un array, donc ta comparaison stricte de marche pas, fait juste !=

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 90
    Par défaut
    c'est pareil, il me renvoie un tableau vide

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est que requete ne renvoie pas de résultat, et t'as pas a faire de htmlspecialchars, pas besion non plus de mettre les ':' dans $q

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 90
    Par défaut
    justement c'est ce que j'ai dit la requête ne me ramène pas de valeur, tandis lorsque je remplace les paramètres par des valeurs par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT * FROM membre WHERE numpol = ED1235 AND numcart =00056478'
    la requête me ramène un résultat

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait un var_dump($q);

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

Discussions similaires

  1. [ODBC] Exécuter une requête sur le résultat d'une autre
    Par che0po dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/05/2012, 11h29
  2. [PDO] PDO et exécution de requête
    Par redoran dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/02/2012, 15h54
  3. [WD10] exécution de requête paramétrée
    Par cool dans le forum WinDev
    Réponses: 4
    Dernier message: 22/10/2009, 14h46
  4. Requète paramétrée avec résultat variable
    Par slackjayo dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 20h39
  5. [ADO.Net][C#/Mysql] Comment exécuter une requête paramétrée?
    Par wremacle dans le forum Accès aux données
    Réponses: 6
    Dernier message: 07/02/2006, 16h55

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