在 SQL 的 LIKE 语句中使用参数
问题陈述:
创建搜索时函数中,使用参数来防止SQL注入攻击的查询是实现:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
但是,此查询不会返回任何结果。
答案:
参数可以在 LIKE 语句中有效使用以防止SQL注入攻击。但是,原始查询中使用的语法不正确。
更正的语法:
在 LIKE 语句中使用参数的正确语法是:
SELECT * FROM compliance_corner WHERE (body LIKE @query) OR (title LIKE @query)
在这种情况下,参数定义为“@query”,并且应使用参数化来分配其值查询。
VB.NET 中的示例:
Dim cmd As New SqlCommand( "SELECT * FROM compliance_corner" _ + " WHERE (body LIKE @query )" _ + " OR (title LIKE @query)") cmd.Parameters.Add("@query", "%" + searchString + "%")
以上是如何正确使用SQL LIKE语句中的参数来防止SQL注入?的详细内容。更多信息请关注PHP中文网其他相关文章!