ホームページ >データベース >mysql チュートリアル >SQL パラメーターは LIKE ステートメントで効果的に使用できますか?
SQL の LIKE ステートメントでのパラメーターの使用
検索関数を開発する場合、SQL インジェクション攻撃などの潜在的なセキュリティ リスクを最小限に抑えることが重要です。 1 つのアプローチは、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 中国語 Web サイトの他の関連記事を参照してください。