OUJOOD.COM
La fonction fetch_all() / mysqli_fetch_all() en PHP
PHP Version: 5.3 +
La fonction fetch_all() (ou mysqli_fetch_all() en utilisant l'extension MySQLi) est largement utilisée en PHP pour récupérer tous les résultats d'une requête SQL sous forme d'un tableau associatif ou numérique.
Définition
La fonction fetch_all() récupère toutes les lignes de résultat d'une requête et les retourne dans un tableau multidimensionnel. Chaque ligne est un tableau contenant les valeurs de chaque colonne de la base de données.
Syntaxes
La fonction peut être utilisée avec la syntaxe orientée objet ou procédurale en PHP.
Syntaxe Orientée Objet :
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_données"); $result = $mysqli->query("SELECT * FROM ma_table"); $rows = $result->fetch_all(MYSQLI_ASSOC);
Syntaxe Procédurale :
$conn = mysqli_connect("localhost", "utilisateur", "motdepasse", "ma_base_de_données"); $result = mysqli_query($conn, "SELECT * FROM ma_table"); $rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
Valeurs Possibles et Paramètres
La fonction fetch_all() accepte le paramètre optionnel resulttype qui définit le type de tableau à retourner. Les valeurs possibles sont MYSQLI_ASSOC, MYSQLI_NUM et MYSQLI_BOTH.
Exemples Pratiques
Approche Orientée Objet :
Exemple : 📋 Copier le code
<?php $mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_données"); $result = $mysqli->query("SELECT nom, age FROM utilisateurs"); $rows = $result->fetch_all(MYSQLI_ASSOC); foreach ($rows as $row) { echo "Nom: " . $row['nom'] . ", Age: " . $row['age'] . "<br>"; } ?>
Approche Procédurale :
Exemple : 📋 Copier le code
<?php $conn = mysqli_connect("localhost", "utilisateur", "motdepasse", "ma_base_de_données"); $result = mysqli_query($conn, "SELECT nom, age FROM utilisateurs"); $rows = mysqli_fetch_all($result, MYSQLI_ASSOC); foreach ($rows as $row) { echo "Nom: " . $row['nom'] . ", Age: " . $row['age'] . "<br>"; } ?>
Astuces et Conseils
- Assurez-vous d'avoir activé l'extension MySQLi dans votre installation PHP.
- Utilisez MYSQLI_ASSOC pour récupérer un tableau associatif, MYSQLI_NUM pour un tableau numérique et MYSQLI_BOTH pour les deux.
- Veillez à échapper les données provenant de la base de données pour éviter les failles de sécurité (utilisez htmlspecialchars() ou des méthodes similaires).
- Évitez d'utiliser fetch_all() pour de grands ensembles de résultats, car cela peut consommer beaucoup de mémoire. Utilisez plutôt des méthodes de pagination ou des limites.