Maison > développement back-end > tutoriel php > Comment lier des valeurs LIKE avec le caractère % dans PDO ?

Comment lier des valeurs LIKE avec le caractère % dans PDO ?

Linda Hamilton
Libérer: 2024-11-16 16:59:03
original
759 Les gens l'ont consulté

How to Bind LIKE Values with the % Character in PDO?

Liaison de valeurs LIKE avec le caractère % dans PDO

Dans les requêtes SQL pilotées par PDO, il est courant de rencontrer le besoin de lier des valeurs LIKE qui incluent le caractère générique %. La liaison de ces valeurs garantit la prévention des injections SQL. Cependant, la syntaxe pour ce faire peut prêter à confusion.

Requête avec LIKE '%' : Considérations sur la liaison

Considérez la requête :

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

Ici, vous souhaitez liez la variable $partial en utilisant PDO. Le dilemme se pose lorsqu'il s'agit de décider comment lier le caractère %.

Options de liaison

Option 1 :

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

Liaison : partielle à $ partial="somet".

Option 2 :

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

Lier :partial à $partial="somet%".

Option 3 (Alternative) :

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Copier après la connexion

Effectuez la concaténation de chaînes à l'aide de la fonction MySQL CONCAT.

Considérations particulières sur les cas

Si le mot partiel recherché contient un caractère % ou un trait de soulignement, un traitement spécial est requis. La solution consiste à utiliser la clause ESCAPE dans l'instruction PDO :

$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 technique garantit que les caractères spéciaux sont interprétés correctement dans l'expression LIKE.

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