Utilisation de paramètres dans les instructions LIKE pour SQL
Énoncé du problème :
Lors de la création d'une recherche fonction, une requête utilisant des paramètres pour empêcher les attaques par injection SQL est implémenté :
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
Cependant, cette requête ne renvoie aucun résultat.
Réponse :
Les paramètres peuvent être utilisés efficacement dans les instructions LIKE pour empêcher les attaques par injection SQL. Cependant, la syntaxe utilisée dans la requête d'origine est incorrecte.
Syntaxe corrigée :
La syntaxe correcte pour utiliser les paramètres avec l'instruction LIKE est :
SELECT * FROM compliance_corner WHERE (body LIKE @query) OR (title LIKE @query)
Dans ce cas, le paramètre est défini comme "@query" et sa valeur doit être attribuée à l'aide d'un paramètre requête.
Exemple en VB.NET :
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!