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.
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 () .
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 .
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'ensemble de résultats
$result->free();
} else {
echo 'La requête a échoué: ' . $mysqli->error;
}
// Fermer la connexion
$mysqli->close();
?>
? 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.