"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment utiliser correctement LIKE avec BindParam dans les requêtes MySQL PDO ?

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

Publié le 2024-11-16
Parcourir:504

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 les requêtes MySQL PDO, il est essentiel d'utiliser la syntaxe correcte pour garantir des résultats précis.

Syntaxe optimisée

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 incorrecte car elle place des guillemets simples internes inutiles autour du $term valeur, ce qui entraînerait la recherche de 'a%' au lieu de a%.

Le rôle de bindParam

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

Code révisé

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();
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3