我有一个非常简单的CFML页面,如下所示:
<cfquery name="qry" datasource="#application.db.source#" username="#application.db.user#" password="#application.db.pass#">
SELECT * FROM changemgmt.rfc WHERE rfc_id = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="0">;
</cfquery>
<cfoutput query="qry">
#qry.RecordCount#
</cfoutput>
我的<cfoutput>
标记没有按预期工作。如果您查看这个页面的源代码,它将完全由空行组成。就好像服务器正在解析<cfoutput>
标记一样。但是,如果我将代码更改为:
<cfoutput>
#qry.RecordCount#
</cfoutput>
我使用Lucee作为我的后端CFML引擎。有人能向我解释为什么会有区别吗?
<cfoutput query="qry">
这用于循环抛出查询中的所有行。如果查询结果没有行,则执行永远不会到达<cfoutput query="qry">
中的登录。但是,如果结果中有1+n行,则代码将打印记录计数1+n次。
在这种情况下,如果您只想打印结果的记录计数,那么您只需要使用<cfoutput>#qry#</cfoutput>
但是,如果您想打印查询的每一行的值,那么您可以使用<cfoutput query="qry">
<cfoutput query="qry">
<div>
<span>#qry.rfc_id#</span>
<span>#qry.name#</span>
...
</div>
</cfoutput>