Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction MySQL_Fetch_field pour obtenir avec précision les informations de champ MySQL? Étapes détaillées et analyse des exemples

Comment utiliser la fonction MySQL_Fetch_field pour obtenir avec précision les informations de champ MySQL? Étapes détaillées et analyse des exemples

gitbox 2025-08-14

Lors du développement d'applications PHP, nous devons souvent interagir avec les bases de données MySQL. Dans ce processus, il est courant d'obtenir des informations sur le terrain sur les résultats de la requête de base de données. Par exemple, nous pourrions vouloir obtenir des informations détaillées sur le nom, le type, la longueur, etc. de chaque champ. Dans l'extension PHP de MySQL, la fonction MySQL_Fetch_field () fournit un moyen pratique d'obtenir ces informations sur le terrain. Bien que MySQL_Fetch_field () ait été obsolète et que MySQLI ou PDO soit recommandé, il s'agit toujours d'une partie courante de l'extension MySQL classique, adaptée aux projets ou scénarios anciens nécessitant un support de compatibilité.

Cet article introduira en détail comment utiliser MySQL_Fetch_field () pour obtenir avec précision les informations de champ MySQL et expliquer comment appliquer cette fonction via un exemple.

1. Présentation de la fonction MySQL_Fetch_field ()

mysql_fetch_field () est une fonction qui obtient les informations de champ actuelles de l'ensemble de résultats de la requête MySQL. Chaque fois que mysql_fetch_field () est appelé, il renvoie les informations de métadonnées du champ suivant dans le jeu de résultats de requête (tel que le nom de champ, le type de champ, etc.). Normalement, après avoir exécuté MySQL_Query () ou MySQL_Query () , nous utilisons MySQL_Fetch_field () pour obtenir les données pertinentes du champ.

2. Syntaxe

 <span><span><span class="hljs-title function_ invoke__">mysql_fetch_field</span></span><span>(resource </span><span><span class="hljs-variable">$result</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$field_offset</span></span><span> = -</span><span><span class="hljs-number">1</span></span><span>)
</span></span>
  • $ Résultat : il s'agit d'une ressource pour l'ensemble de résultats de requête MySQL, qui est généralement obtenu après avoir exécuté une instruction de requête via mysql_query () .

  • $ field_offset : il s'agit d'un décalage de champ facultatif, par défaut à -1, indiquant que le champ suivant est renvoyé. Si un décalage de champ spécifique est fourni, la fonction renvoie les métadonnées du champ.

3. Valeur de retour

Cette fonction renvoie un objet qui contient diverses informations sur le champ. Plus précisément, il comprend les attributs suivants:

  • Nom : nom de champ

  • Tableau : le nom du tableau où se trouve le champ

  • max_length : la longueur maximale du champ

  • not_null : si ce n'est pas un champ nul

  • Longueur : la longueur réelle du champ

  • Type : le type du champ

  • drapeaux : drapeaux de champ

4. Exemple: comment obtenir des informations sur le terrain

Supposons que nous ayons des utilisateurs de table MySQL avec plusieurs champs tels que ID , Name , Email et Created_at . Nous obtiendrons les métadonnées de ces champs à travers les étapes suivantes.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Se connecter àMySQLbase de données</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_connect</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"root"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$conn</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mysql_error</span></span><span>());
}

</span><span><span class="hljs-comment">// 选择base de données</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mysql_select_db</span></span><span>(</span><span><span class="hljs-string">"test_db"</span></span><span>, </span><span><span class="hljs-variable">$conn</span></span><span>);

</span><span><span class="hljs-comment">// mettre en œuvreSQLRequête</span></span><span>
</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, email FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>, </span><span><span class="hljs-variable">$conn</span></span><span>);

</span><span><span class="hljs-comment">// Obtenir des informations sur le terrain</span></span><span>
</span><span><span class="hljs-variable">$num_fields</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_num_fields</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Requête结果Champs信息:\n"</span></span><span>;
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-variable">$num_fields</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
    </span><span><span class="hljs-variable">$field_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_fetch_field</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>, </span><span><span class="hljs-variable">$i</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Champs <span class="hljs-subst">{$i}</span></span></span><span>:\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"nom:<span class="hljs-subst">{$field_info-&gt;name}</span></span></span><span>\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"taper:<span class="hljs-subst">{$field_info-&gt;type}</span></span></span><span>\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nom de table:<span class="hljs-subst">{$field_info-&gt;table}</span></span></span><span>\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Longueur maximale:<span class="hljs-subst">{$field_info-&gt;max_length}</span></span></span><span>\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"longueur:<span class="hljs-subst">{$field_info-&gt;length}</span></span></span><span>\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SiNOT NULL:<span class="hljs-subst">{$field_info-&gt;not_null}</span></span></span><span>\n\n";
}

</span><span><span class="hljs-comment">// Fermer la connexion</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mysql_close</span></span><span>(</span><span><span class="hljs-variable">$conn</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

5. Analyse de code

  1. Connexion et sélection de la base de données : Connectez-vous à la base de données MySQL via mysql_connect () et sélectionnez la base de données à utiliser à l'aide de MySQL_Select_DB () .

  2. Exécutez la requête : exécutez la requête SQL via mysql_query () et obtenez le résultat de résultat de requête $ résultat .

  3. Obtenez le nombre de champs : utilisez mysql_num_fields () pour obtenir le nombre de champs dans l'ensemble de résultats de requête.

  4. Obtenez des informations sur le champ : utilisez mysql_fetch_field () pour obtenir des informations sur le terrain dans le résultat des résultats de la requête un par un. Boucle des informations détaillées telles que le nom, le type, la longueur, etc. de chaque champ.

  5. Connexion de fermeture : Après avoir exécuté la requête, utilisez mysql_close () pour fermer la connexion de la base de données.

6. Types de champ communs

Dans le développement réel, les informations de type de champ renvoyées par mysql_fetch_field () sont cruciales pour la compréhension de la structure de la base de données. Voici quelques types de champs MySQL courants:

  • Mysql_type_long : type entier, généralement int .

  • Mysql_type_string : type de chaîne, généralement varchar ou texte .

  • Mysql_type_blob : type de données binaire.

  • MySQL_TYPE_FLOAT : Type flottant, Flotter ou double généralement.

  • Mysql_type_timestamp : type d'horodatage, généralement l'horodatage .

7. Conclusion

Bien que la fonction MySQL_Fetch_field () soit une fonction obsolète et que l'extension MySQL ait été marquée comme obsolète, il s'agit toujours d'un outil commun dans certains anciens projets ou code. Grâce à l'introduction de cet article, nous pouvons voir comment utiliser cette fonction pour obtenir avec précision les informations sur le terrain des résultats de la requête MySQL, et comment utiliser ces informations pour un traitement et un affichage supplémentaires.

Si vous développez un nouveau projet, il est fortement recommandé d'utiliser MySQLI ou PDO au lieu d'extensions MySQL , qui offrent une meilleure fonctionnalité et un meilleur support de sécurité.