Maison >base de données >tutoriel mysql >Les paramètres SQL peuvent-ils être utilisés efficacement avec les instructions LIKE ?
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!