Utilisation du caractère générique "J'aime" dans les déclarations préparées
Comprendre le problème
Dans les requêtes de base de données , le caractère générique « J'aime » est couramment utilisé pour rechercher des données en fonction d'un modèle de mot-clé. Lorsque vous utilisez des instructions préparées pour améliorer la sécurité et les performances des requêtes, il peut être difficile d'incorporer efficacement le caractère générique « j'aime ».
Solution utilisant PreparedStatement
Pour utiliser le caractère « j'aime » " dans une instruction préparée, vous ne modifiez pas la chaîne SQL elle-même. Au lieu de cela, définissez le « mot-clé % » dans la valeur que vous avez définie dans l'instruction. Voici comment procéder pour différents types de recherche :
Prefix-Match :
// Replace escape characters to prevent conflict with wildcard notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Suffixe-Match :
pstmt.setString(1, "%" + notes);
Correspondance globale :
pstmt.setString(1, "%" + notes + "%");
En définissant le " password%" dans la valeur attribuée à l'instruction préparée, vous pouvez effectuer efficacement des recherches génériques sans compromettre la sécurité ou les performances des requêtes.
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!