我正在运行MySQL 5.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,如何保护上面的字符串?
谢谢!

最佳答案

您想使用listseparatorcfqueryparam参数。

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#">)

09-28 08:20