我正在运行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
,如何保护上面的字符串?谢谢!
最佳答案
您想使用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#">)