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 :

vérifier qu'une requete retourne une valeur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut vérifier qu'une requete retourne une valeur
    Bonjour à tous,


    Je suis passé à la PDO sous php il y a peu, et je me retrouve confronté au probleme suivant :

    J'aimerais réalisé une action seulement si ma requete retourne au moins une ligne.
    Avant je faisais simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(mysql_num_rows(mysql_query("MA REQUETE")) )
    {
    MES ACTIONS
    }
    je pensais donc en pdo faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql = $bdd->query("SELECT id_equipe FROM equipes WHERE bot = 1 ") or die(print_r($bdd->errorInfo()));
     
     
    //Si il y a une équipe bot alors on peut préparer l'équipe
    if($result = $sql->fetch())
    {
    ICI MON ACTION
    }
    else // c'est qu'il n'y a aucune ligne retournée

    Hors,ici si il la requete retourne bien une ligne, il n'y a aucun, probleme, mais si la requete ne retourne aucune ligne, j'ai "l'erreur" suivante qui s'affiche :

    Array ( [0] => 00000 ) 1

    COmment dois je donc procéder ?

    Merci d'avance !

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Il y a une Doc sur le Net, qui d'ailleurs peu se télécharger dans divers format (chr, html), et elle est plutôt bien faite, faut pas hésiter.
    La doc donc pour -> PDO

    Concernant PDO, il y a en faite 3 Objets : PDO, PDOStatement, PDOException.
    A prospecter donc.

    D'ailleurs, et comparativement, la fonction mysql_query() retourne une ressource, alors qu'avec PDO, $bdd->query() retourne un Objet PDOStatement, c'est très différent, il ne faut pas trop trop comparer en faite (la doc, rien de tel).
    Théoriquement c'est $stmt->rowCount() retourne le nombre de lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $stmt = $bdd->query("SELECT id_equipe FROM equipes WHERE bot = 1");
    $total = $stmt->rowCount();
    Par contre, n'oublie pas qu'il y a la fonction COUNT() en MySQL qui permet d'obtenir le nombre de lignes d'une requête aussi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $stmt = $bdd->query("SELECT COUNT(*) AS total FROM equipes WHERE bot = 1");
    $total = $stmt->fetch();
    echo $total['total'];
    Un fetch() directement ne devrait pas causer de problème (sauf erreur de syntaxe bien sûr), car au pire ça retournera 0, pour aucune ligne.

    Autre parenthèse.
    Utiliser des or die() avec PDO, c'est un peu dommage.
    Regarde du coté de la doc, du forum PDO aussi, car utiliser les exceptions (ou des warning) serait mieux à mon sens.
    Par défaut PDO affiche aucune erreur il me semble, il faut juste rajouter quelque chose au moment de l'instanciation de PDO.

Discussions similaires

  1. Dupliquer une requete d une base vers une autre
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/07/2010, 13h09
  2. Réponses: 6
    Dernier message: 30/08/2007, 16h47
  3. Savoir si une requete retourne une valeur
    Par swissmade dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/08/2007, 14h08
  4. [ Requete ] effectuer une requete avec la valeur d'un combo box
    Par Jeremie_Vi dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 28/06/2006, 15h36
  5. Utilisation d'une requete dans une requete update
    Par hellbilly dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2005, 15h09

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