ホームページ >データベース >mysql チュートリアル >SQL インジェクションを防ぐために SQL LIKE ステートメントでパラメーターを正しく使用するにはどうすればよいですか?
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」として定義されており、その値はパラメータ化されたメソッドを使用して割り当てる必要があります。 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 インジェクションを防ぐために SQL LIKE ステートメントでパラメーターを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。