mysql - 我必须在 Coldfusion 中限定查询输出的范围吗?

标签 mysql coldfusion scope

如果我在 Coldfusion 中运行数据库查询/存储过程,引用从查询返回的字段的正确方法是什么?

<cfstoredproc procedure="proc_select_extern" datasource="stokkers">
    <cfprocparam type="in" value="#Session.Extern#" cfsqltype="cf_sql_varchar" maxlength="13">
    <cfprocresult name="extern">
</cfstoredproc>
<cfoutput query="extern">
   <cfset variables.some = extern.foo>
   OR 
   <cfset variables.some = foo>
</cfouput>

extern 包括 foo、bar 和 foobar。是否允许并且更好地写:

 extern.foo;
 extern.bar;
 extern.foobar;

因为我在浏览一个页面时经常发现这些“裸”变量有点难以理解:

 foo;
 bar;
 foobar;

有很多关于范围和适当范围的信息,但我没有在查询输出中找到任何信息。

感谢您的澄清!

最佳答案

有些人会告诉您,始终确定范围是一种良好的习惯做法,因为它可以防止您在真正重要的地方犯范围错误。

就我个人而言,我喜欢将 cfoutput 与查询一起使用而不必限定范围的方法 - 它等同于其他语言中的“WITH”。由于查询将始终在查询驱动的 cfoutput 标记中的表单和 url 范围之前进行评估,因此我没有看到在该实例中离开范围的任何问题。请记住,在 CFC 中,“参数”和本地范围都是抢占式的 - 但这不是查询驱动的 cfoutput 的最佳位置 - 它旨在(巧妙地设计)方便显示。 p>

但同样......其他人会告诉你不同的(也有一些热情:)。

关于mysql - 我必须在 Coldfusion 中限定查询输出的范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709193/

相关文章:

mysql - 将数据导入处理程序添加到 ColdFusion 2016 Solr

coldfusion - 使用 ColdFusion YesNoFormat 时如何屏蔽是/否

Python 解释器中的全局/局部作用域?这是什么妖术

java - 在谷歌应用程序引擎上的 hibernate 中使用mysql重复id

php - 获取mysql查询的上一个和下一个id值

forms - CFML 从 form.zipcode 中仅选择 3 个整数

javascript - 了解 Phaser 游戏代码示例

javascript - 将作用域传递给 self-exec 函数内的函数

php - 在 CakePHP 和 MySQL 中获取每日销售值

php - PHP镜像未显示