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 :

Récupérer le nom des champs d'une requête [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 60
    Points : 44
    Points
    44
    Par défaut Récupérer le nom des champs d'une requête
    Bonjour,

    J'ai un petit souci avec PDO,

    Je cherche un moyen de retourner le nom des champs d' une requête SQL. Par exemple avec la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idemp, nom, prenom, departement FROM emp, dept WHERE emp.idemp=dept.iddept;
    La fonction devrait me retourner :

    idemp, nom, prenom et departement.

    Je ne sais pas comment faire. Sans PDO j'avais utilisé mysql_field_name.

    Merci,

    lilmeth

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Avec la méthode getColumnMetaData. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $stmt = $dbh->query('SELECT * FROM utilisateurs');
    for ($i = 0; $i < $stmt->columnCount(); $i++) {
        $meta = $stmt->getColumnMeta($i);
        echo $meta['name'] . PHP_EOL;
    }
    Mais encore faut-il qu'elle soit fonctionnelle/implémentée.

    Sinon, avec un mode de fetch à PDO::FETCH_[NAMED|ASSOC], il suffit de jouer avec les clés du tableau renvoyé correspondant à une ligne de résultats.

    Tout dépend du but et des besoins.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 60
    Points : 44
    Points
    44
    Par défaut
    Super, merci

    ça fonctionne !

    Par contre je n'ai pas bien compris , cette fonction n'est pas toujours implémentée ? C'est à la charge de l'utilisateur ou c'est seulement pour certaines version de PHP ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Je cite la documentation alors
    Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.
    Tous les drivers PDO ne supportent pas la fonction PDOStatement::getColumnMeta().

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

Discussions similaires

  1. [MySQL] Récupérer le nom des champs d'une requête
    Par cal123 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2010, 15h47
  2. Récupérer les noms des champs dans une requête
    Par Nerziel dans le forum Général Python
    Réponses: 1
    Dernier message: 14/09/2009, 11h29
  3. Réponses: 5
    Dernier message: 11/07/2007, 16h03
  4. récupérer les noms des champs d'une table access
    Par fabrice33 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 06/04/2007, 19h38
  5. récupérer le nom des champs d'une table d'une BDD-page web
    Par mathieu_r dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/06/2005, 14h02

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