希望有人会帮助我,因为这让我摸不着头脑. 因为大多数人已经知道使用coldfusion检索mysql查询列名的两种简单方法: 1. cfset arrColumns = ListToArray(thequery.columnList) /2. cfset arrColumns = getMetaData
因为大多数人已经知道使用coldfusion检索mysql查询列名的两种简单方法:
1. <cfset arrColumns = ListToArray(thequery.columnList) /> 2. <cfset arrColumns = getMetaData(thequery) />
两者都可以成功创建一个列名称数组(1个按字母数字顺序排列,2个按照从数据库中检索的顺序).
例如:
<cfquery name="thequery" datasource="thedatasource"> SELECT a.title, b.name FROM tablea a JOIN tableb b ON b.a_id = a.id </cfquery> <cfset arrColumns = ListToArray(thequery.columnList) />
以上将成功输出一个值为的数组:
arrColumns[1]: "name" arrColumns[2]: "title"
我需要它做的是输出:
arrColumns[1]: "tableb.name" arrColumns[2]: "tablea.title"
…基本上,包括数据库表名和列名.这让我摸不着头脑,任何帮助都会非常感激.我已经搜索过Google和stackoverflow,但没有找到答案.
谢谢
首先,JDBC不能可靠地公开您需要的表信息,而ColdFusion实现中的相关方法(getTableName()
)只会引发异常.所以简短的版本是你不能做你想要的,你想要的.
也就是说,我认为你应该以不同的方式处理事情.拥有一个包含数据和架构信息的数据结构的想法似乎对我来说是错误的.