Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2007, 13h02   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 16
Points : 10
Points : 10
Par défaut Connaître les champs d'une table avec PDO

Bonjour à tous,

Je cherche en vain une methode PDO qui pourrait permettre de connaitre le nom des champs d'une table, soit l'équivalent de la classique fonction mysql_list_fields(nomBase, nomTable).
Yadutaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2007, 15h41   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Il faut bien voir que PDO n'est qu'un pilote générique de SGBD. Ce que tu es en train de rechercher est une solution ORM (abstraction de SQL), pas une abstraction de SGBD.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 13h37   #3
Membre éprouvé
 
Avatar de ypicot
 
Inscription : mai 2004
Messages : 371
Détails du profil
Informations personnelles :
Âge : 48

Informations forums :
Inscription : mai 2004
Messages : 371
Points : 432
Points : 432
Désolé, je viens seulement de trouver ton msg.

Une solution :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * retourne la liste des champs d'une table sous forme de tableau
 * @param $pdo connection sur la base de donnees
 * @param $tableName nom de la table dont on veut la liste des champs
 * @return array liste des noms de champs de $tableName
 */
function getFieldsName ($pdo, $tableName) {
	$recordset = $pdo->query("SHOW COLUMNS FROM $tableName");
	$fields = $recordset->fetchAll(PDO::FETCH_ASSOC);
	foreach ($fields as $field) {
		$fieldNames[] = $field['Field'];
	}
	return $fieldNames;
}
 
// pour tester
$pdo = new PDO(DSN, LOGIN, PW);
$fieldNames = getFieldsName($pdo, 'ma_table');
foreach ($fieldNames as $name) {
  	echo "$name\n";
}
Attention, il faut que la BD accepte la requête. Cette solution fonctionne sous MySQL, je n'ai pas encore essayé pour les autres.

PHPment,

Yvan
__________________
Une solution n'est valable que dans un contexte donné
ypicot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h25.


 
 
 
 
Partenaires

Hébergement Web