首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFQuery where参数

CFQuery where参数
EN

Stack Overflow用户
提问于 2010-04-02 19:47:11
回答 2查看 386关注 0票数 2

在我的CF组件中,我试图从用户输入(getSearchString)中过滤数据并运行代码,我在WHERE函数上遇到了问题。能否建议正确的方法是什么?

代码语言:javascript
复制
<cffunction name="getParks" access="remote" returntype="struct">
<cfargument name="page" required="true" />
<cfargument name="pageSize" required="true" />
<cfargument name="gridsortcolumn" required="true" />
<cfargument name="gridsortdirection" required="true" />
<cfargument name="getSearchString" default="" />

<cfif arguments.gridsortcolumn eq "">
    <cfset arguments.gridsortcolumn = "parkName" />
    <cfset arguments.gridsortdirection = "asc" />
</cfif>

<cfquery name="parks" datasource="cfdocexamples">
    select      parkName, parkType, city, state
    from        parks
    where       <cfqueryPARAM value = "#getSearchString#" CFSQLType = "CF_SQL_VARCHAR">
    order by    #arguments.gridsortcolumn# #arguments.gridsortdirection#
</cfquery>

<cfreturn queryconvertforgrid(parks, page, pagesize) />

EN

回答 2

Stack Overflow用户

发布于 2010-04-02 19:54:45

这似乎是一个简单的sql错误。缺少要与搜索字符串进行比较的字段。

应该是:

代码语言:javascript
复制
<cfquery name="parks" datasource="cfdocexamples">
    select      parkName, parkType, city, state
    from        parks
    where       parkName = <cfqueryPARAM value = "#getSearchString#" CFSQLType = "CF_SQL_VARCHAR">
    order by    #arguments.gridsortcolumn# #arguments.gridsortdirection#
</cfquery>
票数 4
EN

Stack Overflow用户

发布于 2010-04-02 22:16:01

实际上不是在param周围,而是在getSearchString周围: WHERE parkName LIKE ... "%#getSearchString#%“...但要注意LIKE的性能问题,而且如果你有大量的条目,dataGrid不会进行真正的分页。完整的解决方案取决于您的数据库类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2566447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档