在 SQL 中的 LIKE 语句中使用参数
开发搜索功能时,尽量减少 SQL 注入攻击等潜在安全风险至关重要。一种方法是在 SQL 查询中使用参数。但是,用户在 LIKE 语句中使用参数时可能会遇到问题。
以下查询演示了 LIKE 语句中的预期参数用法:
SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')
但是,此查询不会产生任何结果结果。这就提出了一个问题:参数是否适用于此上下文,或者它们是否受到限制,如本例所示?
SELECT * FROM compliance_corner WHERE body LIKE '%<string>%'
此外,用户提供了一个在 SQL Server 中返回结果的替代查询:
SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE%max%')
要有效地在 LIKE 语句中使用参数,建议参考下面的 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 语句一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!