我试图更好地理解coldfusion以解决一个小问题。但对于我的生活,我找不到这意味着什么
<cfoutput query="manufactureList">#manufacturer_name#</cfoutput>
我知道这是引用名为manfatureList的查询,但是#manufacturer_name#是一个变量吗?
答案 0 :(得分:7)
你所拥有的是一个写得不好的代码块。
要回答您的问题,哈希内部的任何内容都是ColdFusion变量。当您打算输出值时,需要使用哈希值。
您发布的此语句的问题在于开发人员让您假设manufacturer_name是manufacturerList查询的一部分,这可能是安全的假设,但是编码实践可怕。您应始终将所有变量作为范围,原因有两个:
答案 1 :(得分:3)
#manufacturer_name#表示在运行查询时将生成该值。在您的查询中,您可能有一个名为manufacturer_name的字段。
通过将manufacturer_name放在#符号中,意味着该字段将填充查询中的值。
以下是一个例子:
<cfquery name="qEmployee" datasource="cfdocexamples">
SELECT Emp_ID, FirstName, LastName, Salary FROM EMPLOYEE
</cfquery>
<table bgcolor="CadetBlue" cellpadding="0" cellspacing="0">
<tr bgcolor="DarkCyan">
<td><b>Emp ID</b></td>
<td><b>First Name</b></td>
<td><b>Last Name</b></td>
<td><b>Salary</b></td>
</tr>
<cfoutput query="qEmployee">
<tr>
<td>#Emp_ID#</td>
<td>#FirstName#</td>
<td>#LastName#</td>
<td>#Salary#</td>
</tr>
</cfoutput>
</table>
答案 2 :(得分:1)
字符串表示变量,在这种情况下,这是指查询“manufacurelist”中的列名
答案 3 :(得分:1)
此外,最佳做法是将查询名称添加到该查询的任何列中(事实上,对所有变量执行此操作,将它们放在适当的范围内)。
除了使您的代码更高效之外,从长远来看,当您尝试找出特定变量的来源时,它还可以让开发人员的生活更轻松。
e.g。这样做:
<cfoutput query="manufactureList">#manufactureList.manufacturer_name#</cfoutput>