Aller au contenu

fetch_array

Dans cet article, nous nous concentrerons sur la fonction mysqli_fetch_array() de PHP, utilisée pour récupérer une ligne d'un jeu de résultats MySQLi sous forme de tableau associatif, numérique ou combiné. Nous fournirons un aperçu de la fonction, de ses paramètres et des exemples pratiques.

Introduction à la fonction mysqli_fetch_array()

La fonction mysqli_fetch_array() est une fonction intégrée de PHP qui récupère une ligne d'un jeu de résultats MySQLi. Elle renvoie la ligne sous forme de tableau associatif, de tableau numérique ou des deux, selon le paramètre result_type. Cela est particulièrement utile lorsque vous devez parcourir les résultats d'une requête et accéder aux colonnes par nom ou par index.

Comment utiliser la fonction mysqli_fetch_array()

L'utilisation de mysqli_fetch_array() nécessite un jeu de résultats MySQLi valide. Elle est généralement utilisée à l'intérieur d'une boucle while pour parcourir toutes les lignes. Voici un exemple complet avec une gestion d'erreur de base :

Utilisation de base avec une boucle while

php
<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}

$query = "SELECT * FROM my_table";
$result = mysqli_query($mysqli, $query);
if (!$result) {
    die("Query failed: " . mysqli_error($mysqli));
}

// Fetch rows as an associative array
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo $row['column1'] . " - " . $row['column2'] . "<br>";
}

mysqli_close($mysqli);
?>

Dans cet exemple, nous établissons une connexion et exécutons une requête. Nous vérifions les erreurs de connexion et de requête pour éviter les échecs silencieux. La boucle while appelle mysqli_fetch_array() de manière répétée, renvoyant false lorsqu'il n'y a plus de lignes. La constante MYSQLI_ASSOC garantit que les colonnes sont accessibles par leur nom.

Modes de récupération et utilisation avancée

Le deuxième paramètre de mysqli_fetch_array() contrôle la manière dont la ligne est renvoyée. Trois constantes sont disponibles :

  • MYSQLI_ASSOC – Renvoie un tableau associatif (noms des colonnes comme clés).
  • MYSQLI_NUM – Renvoie un tableau numérique (indices des colonnes comme clés).
  • MYSQLI_BOTH – Renvoie à la fois des tableaux associatifs et numériques. C'est le mode par défaut si le deuxième paramètre est omis.

Voici comment récupérer une ligne sous forme de tableau numérique :

Récupération en tableau numérique

php
<?php
// ... connection and query setup ...
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
    echo $row[0] . " - " . $row[1] . "<br>";
}
?>

Lors de l'utilisation de MYSQLI_BOTH, chaque colonne apparaît deux fois dans le tableau : une fois par nom et une fois par index. Cela peut être utile pour du code legacy, mais cela augmente l'utilisation de la mémoire, il est donc généralement préférable d'utiliser MYSQLI_ASSOC ou MYSQLI_NUM pour les applications modernes.

Conclusion

La fonction mysqli_fetch_array() offre une récupération flexible des lignes à partir des jeux de résultats MySQLi. En comprenant ses modes de récupération et en intégrant une gestion d'erreur de base, vous pouvez écrire des requêtes de base de données plus robustes et efficaces en PHP.

Pratique

Que fait la fonction mysqli_fetch_array() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.