Maison >base de données >tutoriel mysql >Comment récupérer efficacement tous les résultats d'une requête MySQLi LIKE avec plusieurs correspondances ?
Récupération de toutes les correspondances d'une requête MySQLi LIKE
Travailler avec des requêtes MySQLi LIKE
en PHP, en particulier lorsque plusieurs résultats sont attendus, nécessite une manipulation minutieuse pour garantir que tous les enregistrements correspondants sont récupérés. Ce qui suit montre des méthodes efficaces pour y parvenir.
Une erreur courante consiste à récupérer uniquement le premier résultat. Pour récupérer toutes les lignes correspondantes, utilisez ces techniques améliorées :
Méthode 1 : Utiliser fetch_all()
(Recommandé)
Cette méthode est concise et efficace, notamment pour PHP 8.2 et supérieur. Il récupère tous les résultats dans un tableau associatif :
<code class="language-php">$param = "%{$_POST['user']}%"; $stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?"); $stmt->bind_param("s", $param); $stmt->execute(); $result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC); // Fetches all results</code>
Pour PHP 8.2, la fonction execute_query
simplifie encore davantage cela :
<code class="language-php">$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%{$_POST['user']}%"]); $data = $result->fetch_all(MYSQLI_ASSOC);</code>
Méthode 2 : Approche itérative avec bind_result()
et while
boucle
Cette approche parcourt chaque ligne individuellement, en imprimant les id
et username
:
<code class="language-php">$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}<br>"; // Added <br> for better output }</code>
Cette méthode est utile si vous devez traiter chaque ligne individuellement, plutôt que de toutes les stocker dans un tableau.
Les deux méthodes sont basées sur la documentation officielle MySQLi et fournissent des solutions robustes pour gérer plusieurs résultats de LIKE
requêtes. La méthode fetch_all()
est généralement préférée pour sa simplicité et son efficacité à récupérer tous les résultats en même temps.
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!