Position actuelle: Accueil> Derniers articles> Utilisez While Loop pour coopérer avec fetch_assoc () pour traverser correctement les résultats de la requête

Utilisez While Loop pour coopérer avec fetch_assoc () pour traverser correctement les résultats de la requête

M66 2025-06-03

L'extension MySQL est l'un des outils les plus couramment utilisés lors de l'utilisation de PHP pour les opérations de base de données MySQL. Surtout lors du traitement des résultats de la requête, la combinaison de l'objet mysqli_result , de la méthode fetch_assoc () et bien que la boucle soit une méthode de traversée efficace et commune. Cet article fournira des détails sur la façon de les utiliser correctement et donnera des considérations et un exemple de code.

1 ?? Qu'est-ce que MySQLI_RESULT ?

Lorsque vous exécutez une requête sélectionnée avec mysqli_query () , le résultat renvoyé est un objet mysqli_result . Cet objet contient toutes les lignes de données renvoyées par la requête. Pour accéder à ces données, vous devez utiliser une méthode spéciale, telle que fetch_assoc () .

2 ?? Qu'est-ce que fetch_assoc () ?

fetch_assoc () est une méthode fournie par mysqli_result . Il est utilisé pour éliminer la ligne suivante à partir de l'ensemble de résultats et renvoyer un tableau associatif. La clé du tableau est le nom de champ et la valeur est la valeur de champ correspondante. Chaque appel déplace une ligne vers le bas jusqu'à ce qu'aucune ligne ne renvoie null .

3 ?? Utiliser pendant la boucle pour traverser les résultats de la requête

D'une manière générale, nous utiliserons une boucle de temps , combinée avec fetch_assoc () , pour obtenir les données dans le résultat de résultat ligne par ligne. En effet, fetch_assoc () ne renvoie qu'une ligne à la fois et nécessite des appels continus pour terminer toutes les lignes.

Exemple de code:

 <?php
// Connectez-vous à la base de données
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

// Vérifiez la connexion
if ($mysqli->connect_error) {
    die('Échec de la connexion: ' . $mysqli->connect_error);
}

// Exécuter une requête
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);

if ($result instanceof mysqli_result) {
    // Résultats de la requête de traversée
    while ($row = $result->fetch_assoc()) {
        echo 'ID: ' . $row['id'] . '<br>';
        echo 'Nom: ' . $row['name'] . '<br>';
        echo 'Mail: ' . $row['email'] . '<br>';
        echo '<a href="https://m66.net/user/' . $row['id'] . '">Vérifiez les détails</a><br><br>';
    }

    // Libérez l&#39;ensemble de résultats
    $result->free();
} else {
    echo 'La requête a échoué: ' . $mysqli->error;
}

// Fermer la connexion
$mysqli->close();
?>

4 ?? Notes

? Vérifiez si la requête est réussie <br> Avant d'appeler $ result-> fetch_assoc () , assurez-vous que $ le résultat est en effet un objet mysqli_result , pas faux .

? Définir les résultats de la libération <br> Après Traversal, appelez $ result-> free () pour libérer la ressource pour éviter la fuite de mémoire.

? Fermez la connexion de la base de données <br> Après avoir utilisé la base de données, appelez $ mysqli-> close () pour fermer la connexion.

? Empêcher l'injection SQL <br> Si l'entrée de l'utilisateur est impliquée dans la requête, il est fortement recommandé d'utiliser des instructions de prétraitement ( préparer + bind_param ) au lieu d'épisser directement la chaîne.