Maison >développement back-end >tutoriel php >Comment éviter les erreurs « Le nombre de variables ne correspond pas » lors de l'utilisation de LIKE '%{$var}%' avec des instructions préparées ?
Comment utiliser LIKE '%{$var}%' correctement avec les instructions préparées
Lorsque vous essayez d'utiliser LIKE '%{$var }%' avec les instructions préparées, certains utilisateurs rencontrent l'erreur : "Le nombre de variables ne correspond pas au nombre de paramètres dans l'instruction préparée." En effet, les instructions préparées nécessitent un nombre spécifique de paramètres et la syntaxe '%{$var}%' ne fournit pas un nombre clair de paramètres.
Exemple incorrect
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';
Solution améliorée
Pour résoudre ce problème, vous devez d'abord créer une variable contenant l'expression LIKE, avec le caractères génériques inclus. Ensuite, liez la variable à l'instruction préparée à l'aide de la méthode bind_param().
$likeVar = "%" . $yourParam . "%"; $stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?"); $stmt->bind_param("s", $likeVar); $stmt->execute();
En suivant cette méthode, vous pouvez effectuer efficacement des recherches LIKE à l'aide d'instructions préparées tout en conservant l'insensibilité à la casse et en autorisant des correspondances partielles.
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!