gpt4 book ai didi

sql - 您如何在 ORDER BY 子句中使用 cfqueryparam?

转载 作者:行者123 更新时间:2023-12-04 09:57:10 25 4
gpt4 key购买 nike

我正在努力成为一名优秀的 CF Web 开发人员并使用 <cfqueryparam>围绕使其成为我的 SQL 查询的所有 FORM 或 URL 元素。

在这种情况下,我试图允许用户动态控制 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>

当我这样做时,我收到以下错误:

The SELECT item identified by the ORDER BY number 1 contains a variable as part of the expression identifying a column position. Variables are only allowed when ordering by an expression referencing a column name.



关于如何安全地做到这一点的任何建议?

最佳答案

不幸的是,您不能在 Order By 子句中直接使用 CFQUERYPARAM。

如果您想动态使用 Order By 但仍然安全地这样做,您可以设置 CFSWITCH 或类似结构来根据某些条件(例如 URL 变量)更改 SortBy 变量。与往常一样,不要直接从用户那里传递任何值,只需查看用户的输入并根据该输入从预先确定的可能值列表中进行选择。然后,只需使用标准语法:

ORDER BY #SortBy#

关于sql - 您如何在 ORDER BY 子句中使用 cfqueryparam?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/889272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com