mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7, PHP 8)

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

Description

Style orienté objet

publicmysqli_result::fetch_fields(): 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 objet mysqli_result retourné par mysqli_query(), mysqli_store_result(), mysqli_use_result(), ou mysqli_stmt_get_result().

Valeurs de retour

Renvoie un tableau d'objets contenant des informations sur la définition des champs.

Propriétés de l'objet
PropriétéDescription
nameLe nom de la colonne
orgnameLe nom original de la colonne si un alias a été spécifié
tableLe nom de la table à laquelle ce champ appartient (s'il n'a pas été calculé)
orgtableLe nom original de la table si un alias a été spécifié
defInutilisé. Toujours une chaîne vide
dbLe nom de la base de données
catalogInutilisé. Toujours "def"
max_lengthLa 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. Pour les colonnes de type chaîne de caractères, la valeur de longueur varie en fonction du jeu de caractères de la connexion. Par exemple, si le jeu de caractères est latin1, un jeu de caractères mono-octet, la valeur de longueur pour une requête SELECT 'abc' est 3. Si le jeu de caractères est utf8mb4, un jeu de caractères multioctets dans lequel les caractères occupent jusqu'à 4 octets, la valeur de longueur est 12.
charsetnrLe numéro du jeu de caractères pour ce champs
flagsUn entier représentant le bit-flags pour ce champs
typeLe type de données utilisées pour ce champs
decimalsLe nombre de décimales pour les champs numériques et la précision des secondes fractionnaires pour les champs temporels.

Exemples

Exemple #1 Style orienté objet

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


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)) {


$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");


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)) {


$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

Voir aussi

To Top