Maison >développement back-end >tutoriel php >Comment utiliser des caractères génériques avec des instructions préparées dans MySQL ?

Comment utiliser des caractères génériques avec des instructions préparées dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 09:46:02969parcourir

 How to Use Wildcards with Prepared Statements in MySQL?

Exécution de requêtes MySQL avec des instructions préparées et des caractères génériques

Lors de l'exécution de requêtes SQL à l'aide d'instructions préparées, il est essentiel d'utiliser efficacement les caractères génériques pour améliorer la flexibilité et l'efficacité de vos requêtes. Bien que les instructions préparées offrent des avantages en matière de sécurité en empêchant l'injection SQL, elles peuvent nécessiter certains ajustements lors de l'incorporation de caractères génériques.

Dans votre scénario spécifique, l'exécution de la requête :

SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'

avec des instructions préparées a initialement échoué, car le code tentait de lier un paramètre directement à un caractère générique. Cependant, en utilisant bindValue au lieu de bindParam, vous avez réussi à obtenir la fonctionnalité souhaitée, en liant la variable $name entourée d'un caractère générique :

$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name");
$stmt->bindValue(':name', '%' . $name . '%');
$stmt->execute();

Alternativement, vous pouvez également exploiter bindParam en conjonction avec le préfixe et l'ajout de caractères génériques au Variable $name, comme indiqué ci-dessous :

$name = "%$name%";
$query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name");
$query->bindParam(':name', $name);
$query->execute();

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