Coldfusion 使用用户输入的表单变量进行CF查询
我正在尝试执行一个查询,将我的trans_location列与用户输入的表单数据相匹配。我有一个下拉列表,让用户选择多个位置。当他们选择多个位置时,会在每个位置之间放置逗号。当我只选择一个位置时,结果会返回正确的位置。但当我选择多个位置时,它找不到任何位置。逗号是否只表示一个名称,而不会搜索每个位置 我也尝试过这样做: 和trans_location=您需要结合使用带有list=true属性的cfqueryparam。以下是cfqueryparam的快速有用教程: 最后:总是,总是,总是在向数据库发送参数时使用cfqueryparamColdfusion 使用用户输入的表单变量进行CF查询,coldfusion,Coldfusion,我正在尝试执行一个查询,将我的trans_location列与用户输入的表单数据相匹配。我有一个下拉列表,让用户选择多个位置。当他们选择多个位置时,会在每个位置之间放置逗号。当我只选择一个位置时,结果会返回正确的位置。但当我选择多个位置时,它找不到任何位置。逗号是否只表示一个名称,而不会搜索每个位置 我也尝试过这样做: 和trans_location=您需要结合使用带有list=true属性的cfqueryparam。以下是cfqueryparam的快速有用教程: 最后:总是,总是,总是在向数据
<cfset result = {} />
<cftry>
<cfset date1 = CREATEODBCDATETIME(form.StartDate & '00:00:00')>
<cfset date2 = CREATEODBCDATETIME(form.EndDate & '23:59:59')>
<cfquery datasource="#application.dsn#" name="GetLocationInfo">
SELECT *
FROM cl_checklists
WHERE date >= <cfqueryparam value="#date1#" cfsqltype="cf_sql_timestamp" />
AND date <= <cfqueryparam value="#date2#" cfsqltype="cf_sql_timestamp" />
AND trans_location IN ( <cfqueryparam value="#FORM.location#" cfsqltype="cf_sql_varchar" list="true" /> )
</cfquery>
<cfoutput>#date1#</cfoutput>
<cfoutput>#date2#</cfoutput>
<cfdump var="#GetLocationInfo#">
<cfcatch type="any">
<cfset result.error = CFCATCH.message >
<cfset result.detail = CFCATCH.detail >
</cfcatch>
</cftry>
您需要将与具有list=true属性的cfqueryparam结合使用。以下是cfqueryparam的快速有用教程:
最后:总是,总是,总是在向数据库发送参数时使用cfqueryparam
<cfset result = {} />
<cftry>
<cfset date1 = CREATEODBCDATETIME(form.StartDate & '00:00:00')>
<cfset date2 = CREATEODBCDATETIME(form.EndDate & '23:59:59')>
<cfquery datasource="#application.dsn#" name="GetLocationInfo">
SELECT *
FROM cl_checklists
WHERE date >= <cfqueryparam value="#date1#" cfsqltype="cf_sql_timestamp" />
AND date <= <cfqueryparam value="#date2#" cfsqltype="cf_sql_timestamp" />
AND trans_location IN ( <cfqueryparam value="#FORM.location#" cfsqltype="cf_sql_varchar" list="true" /> )
</cfquery>
<cfoutput>#date1#</cfoutput>
<cfoutput>#date2#</cfoutput>
<cfdump var="#GetLocationInfo#">
<cfcatch type="any">
<cfset result.error = CFCATCH.message >
<cfset result.detail = CFCATCH.detail >
</cfcatch>
</cftry>
与您的问题无关,但我发现允许多个选择的选择控件很容易出错。您可以考虑复选框。侧注释,如果需要在整个日期上进行筛选,正确的比较是在Coel> = { StaseDATEATWALL}}和Col < {NaySudiDeDeaTale}}。有关更多详细信息和正确的cf_sql_类型,请参阅。与您的问题无关,但我发现允许多个选择的选择控件很容易出错。您可以考虑复选框。侧注释,如果需要在整个日期上进行筛选,正确的比较是在Coel> = { StaseDATEATWALL}}和Col < {NaySudiDeDeaTale}}。有关更多详细信息和正确的cf\u sql\u类型,请参阅。