Maison > développement back-end > tutoriel php > Comment créer en toute sécurité des conditions LIKE dynamiques dans les instructions préparées MySQLi ?

Comment créer en toute sécurité des conditions LIKE dynamiques dans les instructions préparées MySQLi ?

Barbara Streisand
Libérer: 2024-12-17 18:24:11
original
867 Les gens l'ont consulté

How to Securely Build Dynamic LIKE Conditions in MySQLi Prepared Statements?

Créer des requêtes SELECT avec des conditions LIKE dynamiques en tant qu'instructions préparées mysqli

Lorsque vous travaillez avec des entrées utilisateur, les instructions préparées fournissent un moyen sécurisé d'exécuter SQL requêtes. Pour gérer un nombre dynamique de conditions LIKE en fonction des entrées de l'utilisateur, une approche personnalisée est nécessaire.

Le problème

Le code donné vise à créer une instruction préparée avec une variable nombre de conditions LIKE. Cependant, il y a une erreur avec les caractères % qui ne sont pas placés autour des paramètres mais autour des espaces réservés.

La solution

Pour corriger le problème, les caractères % doivent être renvoyés à la ligne. les paramètres dans la variable de construction. Voici le code modifié :

foreach ($search_exploded as $search_each) {
    $x++;
    if ($x == 1) {
        $construct .= "name LIKE ?%";  // % now wraps the parameter
    } else {
        $construct .= " or name LIKE ?%";  // % now wraps the parameter
    }
}
Copier après la connexion

Cela générera une chaîne de construction qui ressemble à ce qui suit :

name LIKE %?% or name LIKE %?% or ...
Copier après la connexion

Améliorations supplémentaires

Le code fourni Les extraits PHP exploitent MySQLi orienté objet au lieu de la syntaxe procédurale. De plus, la solution garantit que les expressions de clause WHERE et les types de données dynamiques sont pris en compte, éliminant ainsi le besoin d'une instruction préparée si aucune condition n'existe.

Conclusion

En suivant ces étapes , vous pouvez créer efficacement des conditions LIKE dynamiques dans les instructions préparées par MySQLi, améliorant ainsi considérablement vos capacités de gestion des requêtes SQL.

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