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
Libérer: 2025-01-20 06:08:08
original
1031 Les gens l'ont consulté

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 :

$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
Copier après la connexion

Pour PHP 8.2, la fonction execute_query simplifie encore davantage cela :

$sql = "SELECT id, username FROM users WHERE username LIKE ?";
$result = $db->execute_query($sql, ["%{$_POST['user']}%"]);
$data = $result->fetch_all(MYSQLI_ASSOC);
Copier après la connexion

Méthode 2 : Approche itérative avec bind_result() et while boucle

Cette approche parcourt chaque ligne individuellement, en imprimant les id et username :

$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}<br>"; // Added <br> for better output
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal