1

我正在运行 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

谢谢!

4

1 回答 1

8

您想使用 的listseparator参数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 回答