Maison > base de données > tutoriel mysql > Comment lier en toute sécurité des valeurs LIKE avec PDO dans les requêtes SQL ?

Comment lier en toute sécurité des valeurs LIKE avec PDO dans les requêtes SQL ?

Patricia Arquette
Libérer: 2024-12-13 12:50:10
original
209 Les gens l'ont consulté

How to Safely Bind LIKE Values with PDO in SQL Queries?

Liaison de valeurs LIKE avec PDO

Lorsque vous essayez de lier des valeurs LIKE à l'aide de l'extension PDO, il est important de considérer comment le caractère générique % est géré.

Dans l'exemple fourni :

select wrd from tablename WHERE wrd LIKE '$partial%'
Copier après la connexion

Il existe plusieurs façons d'aborder la liaison :

  • select wrd from tablename WHERE wrd LIKE ':partial%':
    Cela lierait :partial à $partial="somet", et la requête rechercherait mots se terminant par "somet."
  • sélectionnez wrd à partir du nom de la table WHERE wrd LIKE ':partial' :
    Cela lierait :partial à $partial="somet%", incluant le % dans la valeur liée. La requête ne trouvera aucun résultat puisque la chaîne partielle ne se termine pas par %.
  • SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%'):
    Cette option joint la valeur liée avec % à la fin de MySQL, gérant efficacement le caractère générique.

Dans les cas complexes où la chaîne partielle peut contenir des caractères spéciaux (% ou _), un échappement supplémentaire peut être nécessaire :

$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);
Copier après la connexion

Cette approche remplace les occurrences de , %, et _ dans la valeur liée par des versions échappées.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal