Correspondance des noms d'utilisateur commençant par un caractère utilisant LIKE et bindParam dans PDO
Dans les requêtes de base de données utilisant bindParam avec PDO, vous pouvez rencontrer des scénarios dans lesquels vous Vous devez utiliser l'opérateur LIKE pour rechercher des correspondances partielles de données. Plus précisément, vous souhaiterez peut-être récupérer les noms d'utilisateur qui commencent par un caractère spécifique, noté « a » dans ce cas.
Pour y parvenir en utilisant correctement LIKE et bindParam, évitez de placer l'espace réservé bindParam avec des guillemets simples internes. La syntaxe correcte est :
$term = "a%";
Le code présente une erreur lors de la tentative d'exécution de a%' comme critère générique au lieu de a%.
N'oubliez pas que bindParam garantit que toutes les valeurs de chaîne sont cité de manière appropriée lorsqu'il est transmis à l'instruction SQL. Par conséquent, mettre l'espace réservé entre guillemets est inutile et entraînera une correspondance incorrecte.
La requête corrigée doit se lire comme suit :
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
Ce code récupérera avec succès tous les noms d'utilisateur commençant par le caractère 'a' en appliquant correctement l'opérateur LIKE dans l'utilisation de bindParam.
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!