ren*_*nan 5 coldfusion evaluate
我在一个名为的列下有一个值为的表:str_condition
在此列中的值可以是:variables.bit_male/ application.bit_male/isdefined('session.int_user_id')
价值可能很复杂.
我需要使用列中值的值.
目前,我正在做的是
<cfif evaluate(query.str_condition) eq true>
.....code....
</cfif>
Run Code Online (Sandbox Code Playgroud)
现在,我需要省略评估.
TBH,我坚持evaluate()这样做:你正在利用其中有意义的少数情况之一.如果你在DB字段中拥有的只是一个表达式(没有标签),那么evaluate()它将正常工作.
正如其他人建议......在数据库存储的表达不理想,但我可以看到有时可能是最好的方法,但是也不过考虑它,如果你能拿出完全不同的方法(这是情况 - 特定的,所以我们不能真正给你指导).
对你来说,唯一的另一个真正的选择是将数据库中的代码编写到文件然后include它,但evaluate()我认为这将是一个比使用更糟糕的解决方案.
很多人都evaluate()被这个糟糕的教条所困扰,没有真正停下来思考为什么会这样......在大多数情况下人们都不需要这样做,但在需要它的情况下它是完全正常的(如作为你的).
这是经过编辑的答案,因为我最初误读了这个问题。
在许多情况下,数组表示法是你的朋友
<cfif queryname['fieldname'][rownumber] is true>
code for true
Run Code Online (Sandbox Code Playgroud)
请注意,查询名称没有加引号,但字段名称加了引号。如果您不引用字段名,ColdFusion 将假定它是一个变量。
同样相关的是,如果您将要选择然后执行的内容存储在数据库中,例如代码,则必须选择这些内容,将它们写入另一个 .cfm 文件,然后 cfinclude 该文件。这有点低效。
就您而言,您将变量名称存储在数据库中。如果使用评估给出了正确的结果,那么您所做的任何更改都可能会变得更糟。
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |