ホームページ >データベース >mysql チュートリアル >SQL パラメーターは LIKE ステートメントで効果的に使用できますか?

SQL パラメーターは LIKE ステートメントで効果的に使用できますか?

DDD
DDDオリジナル
2025-01-02 16:24:39842ブラウズ

Can SQL Parameters Be Used Effectively with LIKE Statements?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。