Maison >base de données >tutoriel mysql >Comment récupérer plusieurs lignes avec une requête LIKE à l'aide de mysqli ?
MySQLi LIKE
Requêtes : récupération de plusieurs lignes
Le code fourni utilise bind_result
et fetch
, adaptés uniquement à la récupération sur une seule ligne. Pour récupérer plusieurs lignes correspondant à une requête LIKE
à l'aide de MySQLi, envisagez ces méthodes :
Méthode 1 : Utilisation de get_result()
Cette méthode renvoie un objet ensemble de résultats, vous permettant d'utiliser fetch_all()
pour récupérer toutes les lignes sous forme de 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);</code>
Méthode 2 : Utilisation de execute_query()
(PHP 8.2 et versions ultérieures)
Cette approche rationalisée exécute la requête et récupère tous les résultats simultanément :
<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 3 : Itérative fetch()
Si vous préférez les approches bind_result()
et fetch()
, utilisez une boucle pour parcourir plusieurs lignes :
<code class="language-php">$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 alternatives récupèrent efficacement toutes les lignes satisfaisant votre LIKE
condition. Choisissez la méthode qui convient le mieux à votre style de codage et à votre version de PHP.
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!