Exécuter des requêtes SQL avec des caractères génériques à l'aide d'instructions préparées PDO
L'exécution de requêtes de correspondance de modèles dans les applications de base de données est cruciale pour des recherches flexibles et une récupération de données. Cet article explique comment utiliser efficacement les caractères génériques en conjonction avec les instructions préparées PDO en PHP lors de l'exécution de requêtes MySQL.
Défi : Utiliser des caractères génériques avec des instructions préparées
Lors de l'utilisation d'instructions préparées , qui offrent une sécurité améliorée et préviennent les vulnérabilités d'injection SQL, trouver une solution pour incorporer des caractères génériques (% et _) pour la correspondance de modèles peut s'avérer difficile. Cet article explorera la mise en œuvre réussie des caractères génériques avec les instructions préparées par PDO.
Solution : bindValue et bindParam
La clé pour utiliser avec succès les caractères génériques dans les instructions préparées réside dans la sélection du méthode de liaison appropriée. Les deux options de liaison suivantes sont disponibles :
Exemple d'utilisation : bindValue()
L'extrait de code suivant illustre l'exécution réussie d'une requête à l'aide de bindValue() :
<code class="php">$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name"); $stmt->bindValue(':name', '%' . $name . '%'); $stmt->execute();</code>
Exemple d'utilisation : bindParam()
Alternativement, la méthode bindParam() peut être utilisé comme indiqué ci-dessous :
<code class="php">$name = "%$name%"; $query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name"); $query->bindParam(':name', $name); $query->execute();</code>
En employant ces techniques, il est possible d'effectuer efficacement des requêtes de correspondance de modèles à l'aide d'instructions préparées tout en maintenant la sécurité et en empêchant les vulnérabilités d'injection SQL.
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!