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 ?

Comment récupérer efficacement tous les résultats d'une requête MySQLi LIKE avec plusieurs correspondances ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-20 06:08:081013parcourir

How to Efficiently Retrieve All Results from a MySQLi LIKE Query with Multiple Matches?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn