Maison > base de données > tutoriel mysql > Comment puis-je utiliser en toute sécurité le caractère générique LIKE avec des instructions préparées ?

Comment puis-je utiliser en toute sécurité le caractère générique LIKE avec des instructions préparées ?

Mary-Kate Olsen
Libérer: 2024-12-12 16:34:10
original
712 Les gens l'ont consulté

How Can I Securely Use the LIKE Wildcard with Prepared Statements?

Déclaration préparée avec le caractère générique LIKE : un guide complet

Dans le domaine des requêtes de base de données, les instructions préparées offrent un moyen sûr et efficace de exécuter des requêtes paramétrées. Lors de la recherche de données basées sur des mots-clés ou des modèles spécifiques, le caractère générique LIKE entre en jeu.

Pour utiliser efficacement le caractère générique LIKE avec des instructions préparées, il est crucial de comprendre son emplacement dans le code. Contrairement à l'ajout direct à l'instruction préparée elle-même (comme dans pstmt.setString(1, notes "%")), vous devez l'incorporer dans la valeur elle-même.

Par exemple, pour effectuer une correspondance de préfixe , utilisez l'approche suivante :

notes = notes
    .replace("!", "!!")
    .replace("%", "!%")
    .replace("_", "!_")
    .replace("[", "![");
PreparedStatement pstmt = con.prepareStatement(
        "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
pstmt.setString(1, notes + "%");
Copier après la connexion

Pour une correspondance de suffixe, modifiez-le comme suit :

pstmt.setString(1, "%" + notes);
Copier après la connexion

Et pour une correspondance globale, utilisez cette syntaxe :

pstmt.setString(1, "%" + notes + "%");
Copier après la connexion

Il est important de noter que l'échappement des caractères spéciaux dans la chaîne (tels que "%" et "_") est essentiel pour éviter les vulnérabilités d'injection SQL. Ce faisant, vous vous assurez que le caractère générique LIKE est interprété correctement et protège votre base de données contre les attaques malveillantes.

Avec cette démonstration approfondie, vous pouvez désormais utiliser efficacement le caractère générique LIKE dans les instructions préparées, vous permettant ainsi d'implémenter capacités de recherche de bases de données robustes et sécurisées dans vos applications.

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