(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_fields -- mysqli_fetch_fields — Retourne un tableau d'objets représentant les champs dans le résultat
Style orienté objet
Style procédural
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.
result
Style procédural uniquement : Un objet mysqli_result retourné par mysqli_query(), mysqli_store_result(), mysqli_use_result(), ou mysqli_stmt_get_result().
Renvoie un tableau d'objets contenant des informations sur la définition des champs.
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. À partir de PHP 8.1, cette valeur est toujours 0 . |
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) |
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 caractère, pour montrer son impact sur certaines valeurs (par exemple, longueurs en octets)
$mysqli->set_charset($charset);
$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
echo "============================\n";
echo "Jeu de caractè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 caractère, pour montrer son impact sur certaines valeurs (par exemple, longueurs en octets)
mysqli_set_charset($link, $charset);
$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
echo "============================\n";
echo "Jeu de caractè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 caractè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 caractè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