我有一个问题;
<cfquery datasource="forms" name="departments">
select * from quizes.tb_depts
</cfquery>
Run Code Online (Sandbox Code Playgroud)
这将返回结果集.我想访问一个特定的结果集,其中此行的ID(主键)是我输入的内容.
示例部门[13]应该在ID = 13的结果集中得到结果.
有没有内置的方法来做到这一点?我看到departments.id [rownumber]这不是我想要的.
谢谢
你需要几件事:
WHERE查询中的一个子句,用于过滤结果;<cfqueryparam>元素,以保护您免受SQL注入(更多关于SQL注入:?如何从"鲍比表" XKCD漫画作品的SQL注入).首先,让我们将您的ID分配给变量,因为每次执行此查询时它可能都不一样:
<cfset departmentID = 13 >
Run Code Online (Sandbox Code Playgroud)
现在<cfquery>按如下方式调整块:
<cfquery datasource="forms" name="departments">
select *
from quizes.tb_depts
where id = <cfqueryparam value="#departmentID#" cfsqltype="cf_sql_numeric">
</cfquery>
Run Code Online (Sandbox Code Playgroud)
注意:作为最佳实践,您需要将变量范围限定在<cfqueryparam>.对于我在这里完成的一个简单的变量赋值,它就是#VARIABLES.departmentID#.如果此查询位于将ID作为参数传递的函数中,那么它将是#ARGUMENTS.departmentID#.
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |