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!