如果我在 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/