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 éviter les erreurs « Le nombre de variables ne correspond pas » lors de l'utilisation de LIKE '%{$var}%' avec des instructions préparées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 21:52:13511parcourir

How to Avoid

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!

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