1

MySQL5.0.88とColdfusion8を実行しています。

フォームでは、テーブルからいくつかのレコードIDを取得して、サーバーに送信しています。文字列は次のようになります。

 9900000002985,9900000003180,9900000003203,9900000003487,9900000003579

次に、これをMySQLに渡します。最初は次のようになります。

SELECT bk.*
   FROM header AS bk
   WHERE 1
   AND bk.iln_kaeufer IN ( #passed_in_string# )

私はしばらくの間、次のようにcfqueryparamを使用しようとしてきました。

<cfqueryparam cfsqltype="cf_sql_longvarchar" value="#passed_in_string#">

ただし、これにより、ColdFusionでエラーが発生します。一方、MySQLで直接クエリを実行すると、機能します。したがって、それは私のcfqueryparam宣言にあるものでなければなりません。

このフォームをリモートの場所からAJAXに渡します。そのため、AJAXコミットエラー以外のエラーメッセージは表示されません。

質問
使用できない場合、上記の文字列を保護するにはどうすればよいcfqueryparamですか?

ありがとう!

4

1 に答える 1

8

listのおよびseparatorパラメータを使用しますcfqueryparam

SELECT bk.*
  FROM header AS bk
  WHERE 1
    AND bk.iln_kaeufer IN ( <cfqueryparam list="yes" separator="," cfsqltype="cf_sql_longvarchar" value="#passed_in_string#">)
于 2012-07-30T13:11:04.187 に答える