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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 16:59:03682parcourir

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%'

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%'

Liaison : partielle à $ partial="somet".

Option 2 :

select wrd from tablename WHERE wrd LIKE ':partial'

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

Option 3 (Alternative) :

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

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);

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!

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