1. ホーム
  2. asp.net

[解決済み] ハウツー パラメータとLIKE文 SQL

2023-07-13 12:26:49

質問

私は検索機能を書いています。SQLインジェクション攻撃を防ぐため、あるいは少なくとも制限するために、パラメータを使用したクエリを考えました。 しかし、私のプログラムを通してそれを実行すると、何も返されません。

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')

パラメータはこのように使うことができるのでしょうか? それとも、このようなインスタンスでしか有効ではないのでしょうか?

SELECT * FROM compliance_corner WHERE body LIKE '%<string>%' (ここで <string> は検索対象)。

EDIT: 私はこの関数をVB.NETで構築していますが、それは皆さんが貢献した構文に影響を与えますか?

また、SQL Serverでこのステートメントを実行しました。 SELECT * FROM compliance_corner WHERE (body LIKE '%max%') OR (title LIKE %max%')`を実行したところ、結果が返ってきました。

どのように解決するのですか?

ビジュアルベーシックのコードは次のようなものになります。

Dim cmd as New SqlCommand("SELECT * FROM compliance_corner WHERE (body LIKE '%' + @query + '%') OR (title LIKE '%' + @query + '%')")

cmd.Parameters.Add("@query", searchString)