Vous n'avez pas besoin d'une requête SQL supplémentaire juste pour obtenir vos noms de champs. Vous pouvez utiliser votre requête SELECT normale et obtenir simplement vos noms de champs (et leur définition) à partir de cette requête. De meilleures performances de cette façon !
Solution MySQL obsolète :
La bibliothèque MySQL est obsolète. Il peut être utilisé comme dans ce lien, mais vous devez passer à la bibliothèque mysqli qui est presque identique lorsqu'elle est utilisée de manière procédurale (deuxième échantillon).
http://www.php.net/manual/en/function.mysql-field-name.php
La solution OOP MySQLi :
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = $mysqli->query($query)) {
/* Get field information for all columns */
while ($finfo = $result->fetch_field()) {
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
$result->close();
}
La solution procédurale MySQLi :
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = mysqli_query($link, $query)) {
/* Get field information for all fields */
while ($finfo = mysqli_fetch_field($result)) {
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
mysqli_free_result($result);
}
http://www.php.net/manual/en /mysqli-result.fetch-field.php