Maison >base de données >tutoriel mysql >Comment lier correctement les valeurs LIKE avec les symboles de pourcentage final dans PDO ?

Comment lier correctement les valeurs LIKE avec les symboles de pourcentage final dans PDO ?

DDD
DDDoriginal
2024-12-28 13:28:10867parcourir

How to Properly Bind LIKE Values with Trailing Percentage Symbols in PDO?

Liaison de valeurs LIKE avec PDO

Dans une requête de base de données, les opérateurs LIKE sont utilisés pour effectuer des recherches par caractères génériques. Lors de la liaison de valeurs LIKE à l'aide de l'extension PDO, il est important de gérer correctement le symbole de pourcentage final.

Lier les valeurs LIKE avec le symbole de pourcentage final

Dans la requête fournie, vous souhaitez lier la variable $partial%. L'approche correcte consiste à utiliser un espace réservé avec un signe de pourcentage à la fin :

select wrd from tablename WHERE wrd LIKE :partial%

où :partial est lié à $partial="somet", avec le symbole de pourcentage ajouté automatiquement.

Approches alternatives

Bien que l'approche ci-dessus soit standard, vous pouvez également Considérez :

  • Utilisation de CONCAT : La requête peut être réécrite comme :
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

Cette approche reporte la concaténation de chaînes à MySQL.

Échappement des caractères spéciaux

Si la partie Le mot recherché contient des caractères spéciaux tels que %, _ ou , un échappement supplémentaire est nécessaire. Utilisez l'approche suivante :

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

En échappant ces caractères, vous vous assurez qu'ils sont interprétés correctement dans la condition 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