Maison  >  Article  >  développement back-end  >  Comment utiliser les caractères génériques avec les instructions préparées par PDO : un guide pour éviter les pièges courants ?

Comment utiliser les caractères génériques avec les instructions préparées par PDO : un guide pour éviter les pièges courants ?

DDD
DDDoriginal
2024-10-28 13:52:01172parcourir

How to Use Wildcards with PDO Prepared Statements: A Guide to Avoiding Common Pitfalls?

Instructions préparées PDO avec prise en charge des caractères génériques

Les instructions préparées offrent une sécurité et des performances améliorées pour les requêtes de base de données en empêchant les attaques par injection SQL. Cependant, l'utilisation de caractères génériques avec des instructions préparées peut poser des problèmes.

Dans votre cas, vous essayiez d'exécuter une requête telle que :

<code class="sql">SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'</code>

Vous avez tenté de lier le paramètre avec '%:name %' et ':name', mais les deux ont échoué. Voici comment utiliser des caractères génériques avec des instructions préparées :

Utilisation de bindValue :

Vous pouvez utiliser bindValue pour lier correctement les paramètres génériques :

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

Utilisation de bindParam (Modifié) :

De plus, vous pouvez également utiliser bindParam avec une légère modification :

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

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