Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction mysqli_result :: fetch_field pour afficher la structure du champ du résultat de la requête? Guide complet

Comment utiliser la fonction mysqli_result :: fetch_field pour afficher la structure du champ du résultat de la requête? Guide complet

gitbox 2025-06-10

Lors du développement d'applications de base de données basées sur PHP, nous devons souvent comprendre les informations de structure des champs dans les résultats de la requête de la base de données, tels que le nom du champ, le type de données, la longueur maximale, etc. Ceci est très utile pour générer dynamiquement des tableaux, la vérification des formats de données et même générer automatiquement des éléments de formulaire. Heureusement, PHP offre une fonction puissante - MySQLI_RESULT :: Fetch_field , qui peut nous aider à obtenir facilement ces métadonnées de champ.

Cet article vous donnera une compréhension complète de la façon d'utiliser la fonction mysqli_result :: fetch_field pour afficher la structure du champ des résultats de la requête et approfondir votre compréhension grâce à des exemples de code spécifiques.

1. Qu'est-ce que mysqli_result :: fetch_field ?

mysqli_result :: fetch_field () est une méthode de la classe mysqli_result qui renvoie un objet représentant des informations sur un seul champ dans l'ensemble de résultats. Chaque fois que la méthode est appelée, il renvoie les informations du champ suivant jusqu'à ce qu'il n'y ait plus de champs.

L'objet retourné est un objet STDClass contenant plusieurs propriétés, y compris:

  • Nom : nom de champ

  • Orgname : nom de champ d'origine (si un alias est utilisé)

  • Tableau : le nom du tableau auquel appartient le champ

  • Orgable : Nom de la table d'origine

  • Def : valeur par défaut (obsolète, toujours nul )

  • DB : nom de base de données

  • Catalogue : répertoire de base de données (généralement "def")

  • max_length : la longueur maximale de ce champ dans l'ensemble de résultats

  • Longueur : la longueur de définition du champ

  • Charsetnr : numéro de jeu de caractères

  • Flags : le bit du drapeau du champ (comme s'il s'agit d'une clé principale, si elle peut être nul)

  • Type : le type du champ (comme MySQLI_TYPE_STRING )

  • décimales : décimales

2. Exemples d'utilisation de base

Ce qui suit est un exemple d'utilisation de base montrant comment se connecter à une base de données et obtenir les informations de structure des champs dans le résultat de la requête.

<code> & lt ;? PHP // Paramètres de connexion de la base de données $ host = "localhost"; $ user = "root"; $ password = "your_password"; $ database = "test_db";

// établit une connexion à la base de données
$ Conn = new mysqli ($ host, $ utilisateur, $ mot de passe, $ database);

// Vérifiez la connexion
if ($ con-> connect_error) {
Die ("La connexion a échoué:". $ con-> connect_error);
}

// Exécuter la requête
$ sql = "SELECT ID, nom d'utilisateur, e-mail des utilisateurs";
$ result = $ Conn-> Query ($ SQL);

if ($ result-> num_rows> 0) {
Écho "Informations sur la structure du champ: <br> <br>";

 while ($field = $result-&gt;fetch_field()) {
    echo "Nom de champ: " . $field-&gt;name . "&lt;br&gt;";
    echo "Table d&#39;affiliation: " . $field-&gt;table . "&lt;br&gt;";
    echo "原始Nom de champ: " . $field-&gt;orgname . "&lt;br&gt;";
    echo "taper: " . $field-&gt;type . "&lt;br&gt;";
    echo "longueur: " . $field-&gt;length . "&lt;br&gt;";
    echo "Est-il possible NULL: " . ($field-&gt;flags &amp; MYSQLI_NOT_NULL_FLAG ? "Non" : "Oui") . "&lt;br&gt;";
    echo "--------------------------&lt;br&gt;";
}

} autre {
écho "pas de résultat";
}

// Fermez la connexion
$ Conn-> close ();
?>
</code>

3. Comment comprendre le type et les drapeaux

Type Renvoie une constante entière représentant le type de champ, par exemple:

  • Mysqli_type_long (entier)

  • Mysqli_type_var_string (chaîne de longueur variable)

  • Mysqli_type_datetime (datetime)

Vous pouvez convertir ces constantes en texte plus lisible en définissant un tableau de cartes.

De même, Flags est un massasque qui représente diverses propriétés du champ, par exemple s'il s'agit d'une clé primaire, s'il est automatiquement incrémenté, etc. Vous pouvez utiliser des opérations de bit pour déterminer s'il existe un drapeau.

4. Compétences pratiques

  1. Générez dynamiquement des en-têtes : vous pouvez utiliser fetch_field () pour obtenir dynamiquement les noms de champ comme en-têtes pour les tables HTML, en particulier pour les comptes de colonnes inconnus.

  2. Vérification du champ : l'obtention de la structure du champ à l'avance peut aider à vérifier que le type de champ et la longueur répondent aux attentes lors du traitement de l'entrée des utilisateurs ou de l'importation de données.

  3. Développement automatisé : combinez des métadonnées de champ pour développer des règles de génération de formulaires et de vérification des données automatiques