Maison >base de données >tutoriel mysql >Comment récupérer correctement plusieurs résultats de recherche en utilisant LIKE dans MySQLi ?
Utilisez l'instruction LIKE de MySQLi pour obtenir efficacement plusieurs résultats de recherche
Cet article explique comment utiliser MySQLi pour obtenir plusieurs résultats à partir d'une requête LIKE.
Le code d'origine fourni dans la question tente d'obtenir une seule ligne de résultats, mais cela ne convient pas aux scénarios dans lesquels plusieurs lignes peuvent être renvoyées. Pour obtenir tous les résultats correctement, vous pouvez utiliser :
<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);</code>
Alternativement, à partir de PHP 8.2, vous pouvez utiliser le code plus concis suivant :
<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>
Si vous préférez la syntaxe traditionnelle fetch
et bind_result
, vous pouvez utiliser le code suivant :
<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(); $stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}"; }</code>
Ces extraits de code mis à jour garantissent que toutes les lignes correspondantes sont récupérées de la base de données, vous permettant d'accéder aux données selon vos besoins.
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!