The flags used by MySql are:
NOT_NULL_FLAG = 1
PRI_KEY_FLAG = 2
UNIQUE_KEY_FLAG = 4
BLOB_FLAG = 16
UNSIGNED_FLAG = 32
ZEROFILL_FLAG = 64
BINARY_FLAG = 128
ENUM_FLAG = 256
AUTO_INCREMENT_FLAG = 512
TIMESTAMP_FLAG = 1024
SET_FLAG = 2048
NUM_FLAG = 32768
PART_KEY_FLAG = 16384
GROUP_FLAG = 32768
UNIQUE_FLAG = 65536
To test if a flag is set you can use & like so:
<?php
$meta = $mysqli_result_object->fetch_field();
if ($meta->flags & 4) {
echo 'Unique key flag is set';
}
?>
mysqli_result::fetch_field
mysqli_fetch_field
(PHP 5)
mysqli_result::fetch_field -- mysqli_fetch_field — Retourne le prochain champs dans le jeu de résultats
Description
Style orienté objet (méthode):
Style procédural :
Retourne les attributs de la prochaine colonne dans le jeu de résultats représenté par le paramètre result en tant qu'objet. Appelez cette fonction de façon répétitive pour récupérer les informations de toutes les colonnes.
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 objet qui contient les informations d'un champ ou FALSE si aucune information n'est disponible pour ce 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 champs appartient (s'il n'a pas été calculé) |
| orgtable | Le nom original de la table si un alias a été spécifié |
| def | La valeur par défaut du champs, représentée par une chaîne de caractères |
| max_length | La longueur maximale du champs pour le jeu de résultats |
| length | La largeur du champs, comme spécifiée dans la définition de table |
| charsetnr | Le numéro 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("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = $mysqli->query($query)) {
/* Récupère les informations d'un champ pour toutes les colonnes */
while ($finfo = $result->fetch_field()) {
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
$result->close();
}
/* Fermeture de la connexion */
$mysqli->close();
?>
Exemple #2 Style procédural
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = mysqli_query($link, $query)) {
/* Récupère les informations d'un champ pour toutes les colonnes */
while ($finfo = mysqli_fetch_field($result)) {
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
mysqli_free_result($result);
}
/* Fermeture de la connexion */
mysqli_close($link);
?>
L'exemple ci-dessus va afficher :
Name: Name Table: Country max. Len: 11 Flags: 1 Type: 254 Name: SurfaceArea Table: Country max. Len: 10 Flags: 32769 Type: 4
Voir aussi
- mysqli_num_fields() - Récupère le nombre de champs dans un résultat
- mysqli_fetch_field_direct() - Récupère les métadonnées d'un champ unique
- mysqli_fetch_fields() - Retourne un tableau d'objets représentant les champs dans le résultat
- mysqli_field_seek() - Déplace le pointeur de résultat sur le champs spécifié
mysqli_result::fetch_field
17-Sep-2008 02:16
