Maison >développement back-end >tutoriel php >Comment lier efficacement les valeurs LIKE dans les requêtes PDO ?

Comment lier efficacement les valeurs LIKE dans les requêtes PDO ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 03:57:02426parcourir

How to Bind LIKE Values in PDO Queries Effectively?

Liaison de valeurs LIKE dans PDO

Lors de l'utilisation de requêtes LIKE dans PDO, il est crucial de comprendre comment lier correctement la valeur de recherche pour éviter les imprévus résultats.

Liaison avec correspondance partielle

Pour lier une correspondance partielle, vous pouvez utiliser la syntaxe suivante :

SELECT wrd FROM tablename WHERE wrd LIKE :partial

Lier le paramètre : partiel à la valeur partielle que vous souhaitez rechercher. Par exemple, si vous avez $partial = "somet", vous le lierez comme :

$stmt->bindParam(':partial', $partial);

Liaison avec un caractère générique

Pour lier une correspondance partielle avec un caractère générique à la fin, vous pouvez utiliser l'une de ces méthodes :

  1. Caractère générique généré par PDO :

    Utilisez la syntaxe suivante :

    SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'

    Liez le paramètre :partial à la valeur partielle sans le caractère générique.

  2. Caractère générique généré par SQL :

    Utilisez le syntaxe suivante :

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

    Liez le paramètre :partial à la valeur partielle sans le caractère générique.

Requêtes LIKE complexes

Si la valeur partielle contient des caractères spéciaux tels que %, _ ou , vous devez les échapper pour éviter des résultats inattendus. Utilisez le code suivant :

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

En suivant ces directives, vous pouvez lier efficacement les valeurs LIKE dans vos requêtes PDO.

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