【发布时间】:2014-08-12 22:49:13
【问题描述】:
我遇到了一个我不知道如何避免使用 Evaluate 的情况。我已经存储在数据库表会话变量中,当我输出查询结果时,我想显示会话变量的值。
所以设置如下:
插入数据...
<cfquery datasource="TEST" >
insert into testTable (labelVar) values ("session.test") <- I don't want the value of the session var stored I just want to store the session var
</cfquery>
输出结果...
<cfquery name="qExample" datasource="TEST" >
select labelVar from testTable
</cfquery>
<cfset session.test="Hi!">
<cfset TextValue = Evaluate("#qExample.LabelVar#")>
<cfoutput>#TextValue#</cfoutput> <-Outputs Hi!
现在这一切都可以了,但是 我如何在不使用 Evaluate 的情况下完成此操作?
【问题讨论】:
-
您希望 testTable 有多少行?
-
如果您想避免使用评估,请将查询结果写入 .cfm 文件,然后 cfinclude 该文件。就我个人而言,我认为评估将是两个弊端中的较小者。
-
evaluate()多年来受到了不好的评价(当之无愧),但在过去的几年里,性能有了很大的提高。唯一的其他选择是 Dan 提到的关于写入 .cfm 并包含它的内容,但那里的性能将比evaluate()差得多。这是我见过的少数几个用例之一,evaluate()确实是最佳选择。
标签: coldfusion evaluate