Maison >base de données >tutoriel mysql >Comment utiliser correctement LIKE avec BindParam dans les requêtes MySQL PDO ?

Comment utiliser correctement LIKE avec BindParam dans les requêtes MySQL PDO ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 22:10:021014parcourir

How to Correctly Use LIKE with BindParam in MySQL PDO Queries?

Utiliser correctement LIKE avec BindParam dans une requête MySQL PDO

Lorsque vous essayez d'effectuer des recherches LIKE avec bindParam dans des requêtes MySQL PDO, il est essentiel d'utiliser la syntaxe correcte pour garantir des résultats précis.

Optimisé Syntaxe

Pour faire correspondre les noms d'utilisateur commençant par "a" à l'aide de bindParam, la syntaxe correcte est :

$term = "a%";

En revanche, la syntaxe fournie dans la question d'origine, "$term = "'$term%'" est incorrect car il place des guillemets simples internes inutiles autour de la valeur $term, ce qui entraînerait la recherche de "a%" au lieu de a%.

Le rôle de bindParam

bindParam est responsable de la citation automatique des données de chaîne lorsqu'elles sont insérées dans des instructions SQL. Par conséquent, l'ajout manuel de guillemets simples n'est pas nécessaire et peut conduire. à des résultats incorrects.

Révisé Code

En utilisant la syntaxe optimisée, le code révisé serait :

$term = "a%";

$sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10";      

$core = Connect::getInstance();

$stmt = $core->dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn