Résultats de requêtes MySQL et multiples LIKE : un guide complet
L'utilisation de l'opérateur LIKE
de MySQLi présente souvent des défis lors de la récupération de plusieurs lignes correspondantes. Ce guide montre les techniques correctes pour éviter de tels problèmes.
Code optimisé pour la récupération de plusieurs lignes :
L'extrait de code suivant récupère efficacement tous les enregistrements correspondants de votre table users
et les stocke dans le tableau $data
:
<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>
La clé ici est d'utiliser get_result()
. Cette méthode renvoie un objet de résultat MySQLi, permettant un accès et un traitement transparents de l'ensemble des résultats.
Approche moderne (PHP 8.2 et supérieur) :
Pour PHP 8.2 et versions ultérieures, une méthode plus concise existe :
<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>
Cela exploite la méthode execute_query()
, simplifiant considérablement le processus.
Méthode traditionnelle de récupération et de liaison_result :
Bien que moins efficace, l'approche traditionnelle utilisant fetch()
et bind_result()
reste une option :
<code class="language-php">$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}"; }</code>
Notez que cela nécessite une boucle while
pour parcourir chaque ligne individuellement.
Ressources essentielles :
Pour des informations détaillées et une exploration plus approfondie, reportez-vous à ces ressources :
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!