Maison >base de données >tutoriel mysql >Pourquoi mysqli_fetch_array() échoue-t-il lors d'une utilisation répétée et comment puis-je y remédier ?
Résoudre le dilemme mysqli_fetch_array()
Tenter d'utiliser mysqli_fetch_array() plusieurs fois sur le même ensemble de résultats peut entraîner l'inaccessibilité des données. Cela se produit parce que mysqli_fetch_array() consomme le résultat de manière incrémentielle.
Séparation de la manipulation des données
Pour éviter ce problème, séparez la manipulation des données de la sortie. Voici une approche améliorée :
1. Sélection de données
$db_res = mysqli_query($db_link, $sql); $data = array(); while ($row = mysqli_fetch_array($db_res, MYSQLI_ASSOC)) { $data[] = $row; }
Vous pouvez également utiliser fetch_all() en PHP 5.3 :
$db_res = mysqli_query($db_link, $sql); $data = $db_res->fetch_all(MYSQLI_ASSOC);
Cette étape récupère l'ensemble des résultats dans un tableau, $data.
2. Utilisation des données
Désormais, vous pouvez parcourir $data plusieurs fois sans affecter l'ensemble de résultats.
Rangée du haut
foreach ($data as $row) {
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!