Les instructions de bases de données du langage PHP, permettent de récupérer diverses informations à propos des champs d'une table résultant d'une requête SQL.

En effet, le nom d'un champ peut être retourné par l'intermédiaire de certaines fonctions.

$nom = mssql_field_name($id_resultat, $num_champ);

$nom = msql_fieldname($id_resultat, $num_champ);

$nom = mysql_field_name($id_resultat, $num_champ);

$nom = ociColumnName($id_resultat, $num_champ);

$nom = pg_FieldName($id_resultat, $num_champ);

De même, le type du champ est obtenu en utilisant les fonctions spécifiques.

$type_donnee = mssql_field_type($id_resultat, $num_champ);

$type_donnee = msql_fieldtype($id_resultat, $num_champ);

$type_donnee = mysql_field_type($id_resultat, $num_champ);

$type_donnee = ociColumnType($id_resultat, $num_champ);

$type_donnee = pg_FieldType($id_resultat, $num_champ);

Enfin, d'autres fonctions renvoyent la longueur d'un champ.

$longueur = mssql_field_length($id_resultat, $num_champ);

$longueur = msql_fieldlen($id_resultat, $num_champ);

$longueur = mysql_field_len($id_resultat, $num_champ);

$longueur = ociColumnSize($id_resultat, $num_champ);

$longueur = pg_FieldSize($id_resultat, $num_champ);

Pour le SGBDR Sybase, les propriétés pour un champ spécifié, sont regroupées dans un objet possédant les propriétés : name (nom de la colonne), column_source (nom de la table parente), max_length (longueur maximum pour la colonne), numeric (colonne numérique : 1 sinon -1) et type (type de donnée de la colonne).

$obj_info = sybase_fetch_field($id_resultat, $num_champ);

D'autres propriétés peuvent être recueillies par des instructions relatives à certains gestionnaires de bases de données

// nom de la table parente de la colonne
$nom_table = msql_fieldtable($id_resultat, $num_champ);
$nom_table = msql_tablename($id_resultat, $num_champ);
$nom_table = mysql_field_table($id_resultat, $num_champ);
$nom_table = mysql_tablename($id_resultat, $num_champ);

// sémaphore du champ comme NOT NULL, PRIMARY KEY
$semaphore = msql_fieldflags($id_resultat, $num_champ);
$semaphore = mysql_field_flags($id_resultat, $num_champ);

// vérification de la valeur NULL
$bool_ok = ociColumnIsNULL($id_resultat, $num_champ);
$bool_ok = pg_FieldIsNull($id_resultat, $num_champ);

// numéro du champ identifié par son nom
$num_col = pg_FieldNum($id_resultat, $nom_champ);

// taille imprimable du champ
$taille = pg_FieldPrtLen($id_resultat, $num_champ);
Exemple [voir]
<?php
  $id_connexion = mysql_connect("localhost","root","emma");
  mysql_select_db("utilisateur");
  $requete = "SELECT * FROM tbl_utilisateur";
  $id_resultat = mysql_query($requete, $id_connexion)
        or die ("La requête est invalide : ".$requete."<br>");

  $nb_champs = mysql_num_fields($id_resultat);
  $ligne = mysql_fetch_row($id_resultat);
  $type = array();
  $propriete = array();
  for ($i = 0; $i < $nb_champs; $i++)
  {
    $propriete[$i]['nom'] = mysql_field_name($id_resultat, $i);
    $propriete[$i]['type'] = mysql_field_type($id_resultat, $i);
    $propriete[$i]['longueur'] = mysql_field_len($id_resultat, $i);
  }

  for($i = 0; $i < $nb_champs; $i++)
  {
    echo "<h3>Colonne n°" . $i . "</h3>";
    foreach($propriete[$i] as $cle => $valeur)
    {
      echo "<u>" . $cle . " :</u> <b>" . $valeur . "</b><br>";
    }
  }
?>