我正在努力成为一名优秀的 CF Web 开发人员,并使用<cfqueryparam>
所有 FORM 或 URL 元素来实现我的 SQL 查询。
在这种情况下,我试图让用户动态控制 ORDER BY 子句。
<cfquery datasource="MyDSN" name="qIncidents">
SELECT IncidentID, AnimalID, IntakeDate, DxDate, OutcomeDate
FROM Incidents
WHERE ShelterID = <cfqueryparam cfsqltype="cf_sql_integer" value="#Arguments.ShelterID#">
ORDER BY <cfqueryparam cfsqltype="cf_sql_varchar" value="#SortBy#">
</cfquery>
当我这样做时,我收到以下错误:
由 ORDER BY 编号 1 标识的 SELECT 项包含一个变量,作为标识列位置的表达式的一部分。只有在通过引用列名的表达式进行排序时才允许使用变量。
关于如何安全地做到这一点的任何建议?