Dans MySQL, l'utilisation de l'opérateur LIKE dans une requête peut souvent renvoyer plusieurs résultats. Pour récupérer tous les résultats correspondants, vous devez utiliser les méthodes de récupération appropriées.
Pour récupérer tous les résultats d'une requête, vous pouvez utiliser la méthode get_result(). Cette méthode récupère l'ensemble de résultats complet en tant qu'objet MySQLi_Result. Vous pouvez ensuite utiliser la méthode fetch_all() pour obtenir un tableau de toutes les données de lignes, associées par noms de champs si vous avez utilisé la constante MYSQLI_ASSOC.
Exemple de code utilisant get_result() :
$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);
Exemple de code utilisant PHP 8.2 execute_query() :
$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%{$_POST['user']}%"]); $data = $result->fetch_all(MYSQLI_ASSOC);
Si vous préférez récupérer les résultats de manière itérative, vous pouvez utiliser la méthode fetch(). Cependant, vous devez gérer l'itération vous-même, car il n'existe aucun moyen intégré de parcourir tous les résultats.
Exemple de code pour la récupération itérative avec bind_result() :
$param = "%{$_POST['user']}%"; $stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?"); $stmt->bind_param("s", $param); $stmt->execute(); $stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}"; }
N'oubliez pas de toujours vous référer à la documentation MySQLi pour obtenir les informations les plus récentes sur la récupération des résultats.
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!