首页 > 解决方案 > cfqueryparam 从输入复选框传入列表

问题描述

我有一个输入复选框字段,用户可以在其中选择表单中的多个复选框,根据他们选择的内容,它将创建一个 id 字符串,如 10、14、35、47,并将其提交到数据库。如果我像下面这样直接提交,我可以提交:

user_job_type_id="#form.user_job_type_id#",

但是,如果我尝试将其包装在 cfqueryparam 中,我宁愿这样做以使其更安全,无论我做什么,我都会收到错误消息。无论我将其设置为列表 true 还是 false、varchar、integer,所有内容都会引发错误,例如 cfqueryparam 不接受列表。

例如,下面将不起作用

user_job_type_id=<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#form.user_job_type_id#" list="Yes"/>,

我在这里想念什么?

标签: coldfusioncfquerycfqueryparam

解决方案


正如@SOS 提到的,在检查括号中的值列表时需要使用IN语句。此外,由于这些值都是整数,因此请确保指定正确的cfsqltype. 这可确保对列表中的每个元素进行正确的日期类型检查。

错误的:

user_job_type_id = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#form.user_job_type_id#" list="Yes"/>,

更好的:

user_job_type_id IN (<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#form.user_job_type_id#" list="Yes"/>),

最好的:

user_job_type_id IN (<cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#form.user_job_type_id#" list="Yes"/>),

推荐阅读