Maison > base de données > tutoriel mysql > Pourquoi « bindParam » échoue-t-il lors de l'utilisation de « LIKE » dans les requêtes MySQL PDO ?

Pourquoi « bindParam » échoue-t-il lors de l'utilisation de « LIKE » dans les requêtes MySQL PDO ?

Susan Sarandon
Libérer: 2024-11-13 10:36:02
original
202 Les gens l'ont consulté

Why Does `bindParam` Fail When Using `LIKE` in MySQL PDO Queries?

Correction de la syntaxe LIKE lors de l'utilisation de bindParam pour les requêtes MySQL PDO

Dans les requêtes MySQL PDO, l'utilisation de LIKE avec bindParam peut être délicate. Cette question illustre un problème courant rencontré lors de la tentative de recherche de noms d'utilisateur commençant par une chaîne spécifique.

La syntaxe incorrecte fournie dans la question utilise des guillemets simples internes autour de la variable $term :

$term = "'$term%'";
Copier après la connexion

Pour résoudre ce problème, supprimez simplement les guillemets simples internes :

$term = "$term%";
Copier après la connexion

Lors de l'utilisation de bindParam, PDO gère automatiquement les guillemets de chaîne. L'ajout de guillemets inutiles dans la variable $term peut entraîner une correspondance LIKE incorrecte.

L'instruction corrigée devrait ressembler à ceci :

$sql = "SELECT username 
        FROM `user` 
        WHERE username LIKE :term 
        LIMIT 10";      

$core = Connect::getInstance();

$stmt = $core->dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();
Copier après la connexion

Cela correspondra correctement aux noms d'utilisateur commençant par la variable $term , par exemple "a".

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