我正在编写一个搜索函数,并考虑使用参数来防止或至少限制 SQL 注入(inject)攻击。但是,当我通过我的程序运行它时,它不会返回任何内容:SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
参数可以这样使用吗?或者它们仅在以下情况下有效,例如:SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'
(其中 <string>
是搜索对象)。
编辑:我正在用 VB.NET 构建这个函数,这对你们贡献的语法有影响吗?
此外,我在 SQL Server 中运行了此语句:SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE
%max%')` 并返回结果。
最佳答案
您的可视化基本代码如下所示:
Dim cmd as New SqlCommand("SELECT * FROM compliance_corner WHERE (body LIKE '%' + @query + '%') OR (title LIKE '%' + @query + '%')")
cmd.Parameters.Add("@query", searchString)
关于asp.net - 如何?参数和 LIKE 语句 SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/251276/