mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7)

mysqli_result::fetch_fields -- mysqli_fetch_fieldsRetourne un tableau d'objets représentant les champs dans le résultat

Description

Style orienté objet

mysqli_result::fetch_fields ( void ) : array

Style procédural

mysqli_fetch_fields ( mysqli_result $result ) : array

Cette fonction fonctionne comme mysqli_fetch_field() à la différence que, au lieu de retourner un objet à la fois pour chaque champ, les colonnes sont retournées en tant que tableau d'objets.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau d'objets qui contient les métadonnées d'un champ ou FALSE si aucune métadonnée n'est disponible pour ce champ.

Propriétés de l'objet
Propriété Description
name Le nom de la colonne
orgname Le nom original de la colonne si un alias a été spécifié
table Le nom de la table à laquelle ce champ appartient (s'il n'a pas été calculé)
orgtable Le nom original de la table si un alias a été spécifié
max_length La longueur maximale du champ pour le jeu de résultats
length La largeur du champ, en octets, telle que spécifiée dans la définition de la table. Notez que ce nombre (octets) peut différer de la valeur de votre définition de table (caractères), en fonction du jeu de caractères que vous utilisez. Par exemple, le jeu de caractères utf8 contient 3 octets par caractère, donc varchar(10) renverra une longueur de 30 pour utf8 (10*3), mais 10 pour latin1 (10*1).
charsetnr Le numéro (id) du jeu de caractères pour ce champs
flags Un entier représentant le bit-flags pour ce champs
type Le type de données utilisées pour ce champs
decimals Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli 
= new mysqli("127.0.0.1""root""foofoo""sakila");

/* vérification de la connexion */
if ($mysqli->connect_errno) {
    
printf("Échec de la connexion : %s\n"$mysqli->connect_error);
    exit();
}

foreach (array(
'latin1''utf8') as $charset) {

    
// Définir le jeu de charactère, pour montrer son impact sur certaines valeurs (par exemple, longeurs en octets)
    
$mysqli->set_charset($charset);

    
$query "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo 
"============================\n";
    echo 
"Jeu de charactères : $charset\n";
    echo 
"============================\n";
    
    if (
$result $mysqli->query($query)) {

        
/* Récupère les informations des champs pour toutes les colonnes */
        
$finfo $result->fetch_fields();

        foreach (
$finfo as $val) {
            
printf("Name:      %s\n",   $val->name);
            
printf("Table:     %s\n",   $val->table);
            
printf("Max. Len:  %d\n",   $val->max_length);
            
printf("Length:    %d\n",   $val->length);
            
printf("charsetnr: %d\n",   $val->charsetnr);
            
printf("Flags:     %d\n",   $val->flags);
            
printf("Type:      %d\n\n"$val->type);
        }
        
$result->free();
    }
}
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link 
mysqli_connect("127.0.0.1""my_user""my_password""sakila");

/* vérification de la connexion */
if (mysqli_connect_errno()) {
    
printf("Échec de la connexion : %s\n"mysqli_connect_error());
    exit();
}

foreach (array(
'latin1''utf8') as $charset) {

    
// Définir le jeu de charactère, pour montrer son impact sur certaines valeurs (par exemple, longeurs en octets)
    
mysqli_set_charset($link$charset);

    
$query "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo 
"============================\n";
    echo 
"Jeu de charactères : $charset\n";
    echo 
"============================\n";

    if (
$result mysqli_query($link$query)) {

        
/* Récupère les informations des champs pour toutes les colonnes */
        
$finfo mysqli_fetch_fields($result);

        foreach (
$finfo as $val) {
            
printf("Name:      %s\n",   $val->name);
            
printf("Table:     %s\n",   $val->table);
            
printf("Max. Len:  %d\n",   $val->max_length);
            
printf("Length:    %d\n",   $val->length);
            
printf("charsetnr: %d\n",   $val->charsetnr);
            
printf("Flags:     %d\n",   $val->flags);
            
printf("Type:      %d\n\n"$val->type);
        }
        
mysqli_free_result($result);
    }
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

============================
Jeu de charactères : latin1
============================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    45
charsetnr: 8
Flags:     20489
Type:      253

============================
Jeu de charactères : utf8
============================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    135
charsetnr: 33
Flags:     20489

Voir aussi