我可以使用ColdFusion查询用于MySQL IN语句的字符串吗?

fre*_*ent 1 mysql string coldfusion query-parameters

我正在运行MySQL 5.0.88和Coldfusion8.

在一个表单中,我从表中获取了一些记录ID并将它们发送到服务器.字符串将如下所示:

 9900000002985,9900000003180,9900000003203,9900000003487,9900000003579
Run Code Online (Sandbox Code Playgroud)

然后我将它传递给MySQL,最初是这样的:

SELECT bk.*
   FROM header AS bk
   WHERE 1
   AND bk.iln_kaeufer IN ( #passed_in_string# )
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用cfqueryparam,如下所示:

<cfqueryparam cfsqltype="cf_sql_longvarchar" value="#passed_in_string#">
Run Code Online (Sandbox Code Playgroud)

但这会导致ColdFusion出错.如果我直接在MySQL中运行查询,它就可以工作.所以它一定是我的cfqueryparam声明的东西.

我从远程位置通过AJAX传递此表单.所以我没有收到任何错误消息,除了AJAX提交错误.

问题:
如果我不能使用,如何保护上述字符串cfqueryparam

谢谢!

Joe*_*e C 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#">)
Run Code Online (Sandbox Code Playgroud)

  • 你会知道你是否[阅读cfqueryparam的文档](http://cfdocs.org/cfqueryparam).:P (3认同)