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
Exemple [voir]// 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);
<?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>"; } } ?> |