如何?参数和LIKE语句SQL

2023-11-27

我正在编写一个搜索函数,并想到了使用参数来防止或至少限制 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(使用前将#替换为@)

如何?参数和LIKE语句SQL 的相关文章

随机推荐