我正在编写一个搜索函数,并想到了使用参数来防止或至少限制 SQL 注入攻击的这个查询。但是,当我通过我的程序运行它时,它不会返回任何内容:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
参数可以这样用吗?或者它们仅在以下情况下有效:
SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'
(where <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 +"%")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)