Utilisation de variables définies par l'utilisateur pour lier des paramètres plusieurs fois
Lors de la mise en œuvre de la fonctionnalité de recherche pour une base de données, cela implique généralement l'utilisation d'une instruction préparée et lier un paramètre de terme de recherche. Cependant, MySQL restreint l'utilisation répétée de paramètres nommés dans une seule instruction préparée.
Solutions alternatives
Plutôt que de recourir à plusieurs paramètres (par exemple, :term1, : term2), envisagez d'exploiter les variables définies par l'utilisateur de MySQL. Cela vous permet de stocker la valeur du paramètre dans une variable temporaire au sein de la base de données elle-même.
Implémentation
Pour implémenter ceci :
SET @term = :term;
$stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute();
SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term;
Avantages
Cette méthode offre plusieurs avantages :
Mise en garde
La seule mise en garde est la surcharge liée à l'exécution de la requête supplémentaire pour définir la variable définie par l'utilisateur. Cependant, ses avantages dépassent de loin cet inconvénient mineur.
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!