Maison >base de données >tutoriel mysql >Les paramètres SQL peuvent-ils être utilisés efficacement avec les instructions LIKE ?

Les paramètres SQL peuvent-ils être utilisés efficacement avec les instructions LIKE ?

DDD
DDDoriginal
2025-01-02 16:24:39825parcourir

Can SQL Parameters Be Used Effectively with LIKE Statements?

Utilisation de paramètres avec l'instruction LIKE dans SQL

Lors du développement d'une fonction de recherche, il est crucial de minimiser les risques de sécurité potentiels tels que les attaques par injection SQL. Une approche consiste à utiliser des paramètres dans les requêtes SQL. Cependant, les utilisateurs peuvent rencontrer des problèmes lors de l'utilisation de paramètres avec des instructions LIKE.

La requête suivante démontre l'utilisation prévue des paramètres dans l'instruction LIKE :

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')

Mais cette requête ne produit aucun résultats. Cela soulève la question : les paramètres sont-ils applicables dans ce contexte, ou sont-ils limités, comme on le voit dans ce cas ?

SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'

De plus, l'utilisateur a fourni une requête alternative qui renvoie les résultats dans SQL Server :

SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE%max%')

Pour utiliser efficacement les paramètres avec l'instruction LIKE, il est recommandé de référencer l'extrait de code VB.NET ci-dessous :

Dim cmd as New SqlCommand( _
"SELECT * FROM compliance_corner" _
+ " WHERE (body LIKE @query )" _
+ " OR (title LIKE @query)")

cmd.Parameters.Add("@query", "%" +searchString +"%")

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!

Déclaration:
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