coldfusion - 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"/>,
我在这里想念什么?
解决方案
正如@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"/>),
推荐阅读
- javascript - 使用 switch case,case 内部的 break 结束了外部 for...of 循环迭代
- javascript - 为什么浏览器会向同一来源发送预检请求?
- spring-cloud - Spring cloud Zuul Query 参数编码
- python - 写入功能不起作用,读取功能起作用
- database - 将用户位置和家庭地址存储在数据库中是个好主意吗?
- entity-framework - EF Core 生成的迁移具有数据库品牌注释。寻找与数据库品牌无关的迁移
- compilation - 如何修改audit2allow生成的.te文件,重新编译成.pp文件
- javascript - Socket.io-client 没有默认导出
- swift - Xcode 10 GM:XCUIScreen.main.screenshot() 因“dyld:惰性符号绑定失败”而崩溃
- javascript - 如何创建可以在 angularjs、angular 2+、react 等所有框架中运行的通用模块