Position actuelle: Accueil> Derniers articles> Comparaison et sélection de mysqli_result :: fetch_column et mysqli_fetch_array

Comparaison et sélection de mysqli_result :: fetch_column et mysqli_fetch_array

gitbox 2025-05-26

Lorsque vous utilisez PHP pour les opérations de base de données, l'extension MySQLI fournit plusieurs façons d'obtenir des résultats de requête. Parmi eux, MySQLI_RESULT :: Fetch_Column et MySqli_Fetch_Array sont deux fonctions couramment utilisées mais différentes. Il est très important de comprendre leurs différences et leurs scénarios applicables pour écrire un code efficace et facile à maintenir.


1. Introduction de base

  • mysqli_result :: fetch_column
    Il s'agit d'une nouvelle méthode ajoutée à la version PHP 8.1, qui appartient à la classe MySQLI_RESULT de style orienté objet. Il est utilisé pour obtenir la valeur de la colonne spécifiée à partir de l'ensemble de résultats et renvoyer les données d'un seul champ.

  • mysqli_fetch_array
    Il s'agit d'une fonction orientée procédure qui renvoie toutes les données de champ de la ligne actuelle. Il renvoie un tableau, soit un tableau associatif, un tableau d'index numérique, ou même les deux, selon les paramètres des paramètres.


2. Différences détaillées

caractéristiques mysqli_result :: fetch_column mysqli_fetch_array
Valeur de retour Renvoie la valeur de champ unique de la colonne spécifiée Renvoie le tableau de la ligne actuelle (association, index numérique, ou les deux)
Utiliser le style Orienté objet Orienté vers le processus
Type de retour Valeurs scalaires (chaînes, nombres, etc.) Tableau
Scénarios applicables Juste une certaine colonne de données enregistre la mémoire Nécessite une ligne entière de données, y compris plusieurs colonnes
Exigences de version PHP PHP 8.1 et plus Prise en charge des versions antérieures de PHP

3. Utilisez des exemples

MySQLI_RESULT :: Fetch_Column Exemple

 <?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");

while ($id = $result->fetch_column(0)) {  // Obtenez la première colonne id
    echo "utilisateurID: $id\n";
}

$mysqli->close();
?>

Exemple mysqli_fetch_array

 <?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "utilisateurID: " . $row['id'] . ", utilisateur名: " . $row['name'] . "\n";
}

$mysqli->close();
?>

4. Comment choisir une fonction plus appropriée?

  • Si vous ne vous souciez qu'une seule colonne dans le résultat de la requête et utilisez PHP 8.1 et supérieur, Fetch_Column est un choix plus concis et efficace.
    Il renvoie directement les données de la colonne spécifiée, en évitant la surcharge inutile du tableau et en rendant le code plus concis.

  • Si vous devez accéder à plusieurs champs dans toute la ligne, ou si votre projet utilise toujours PHP 8.0 et ci-dessous, l'utilisation de MySQLI_Fetch_Array est plus appropriée.
    Il prend en charge plus de types de retour et offre un accès flexible aux champs.

  • Orienté objet vs orienté vers le processus <br> Si vous êtes utilisé pour une programmation orientée objet, il est recommandé d'utiliser $ result-> fetch_column () et d'autres méthodes orientées objet de mysqli_result .
    Sinon, MySqli_Fetch_Array () est toujours une fonction procédurale classique et largement utilisée.


5. Résumé

Scène Fonctions recommandées
Obtenez uniquement un seul champ (colonne unique) mysqli_result :: fetch_column
Obtenez un enregistrement complet de plusieurs champs mysqli_fetch_array ou $ result-> fetch_assoc ()
Compatible avec PHP 8,0 et ci-dessous mysqli_fetch_array

Lors de la sélection d'une fonction, vous devez prendre des décisions en fonction des besoins de l'entreprise et de la version PHP. Comprendre la différence entre les deux peut aider à écrire le code d'accès à la base de données plus concise et plus efficace.