我正在编写一个搜索功能,并考虑使用参数来防止或至少限制SQL注入攻击的查询。但是,当我通过程序运行它时,它不会返回任何内容:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
可以像这样使用参数吗?还是仅在以下情况下才有效:
SELECT * FROM compliance_corner WHERE body LIKE '% %'( 搜索对象在哪里)。
编辑:我正在用VB.NET构造此函数,这对你们贡献的语法有影响吗?
另外,我在SQL Server中运行了以下语句:SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE%max%')`,并返回结果。
问题来源于stack overflow
您的可视化基本代码如下所示:
Dim cmd as New SqlCommand("SELECT * FROM compliance_corner WHERE (body LIKE '%' + @query + '%') OR (title LIKE '%' + @query + '%')")
cmd.Parameters.Add("@query", searchString)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。