作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用以下代码循环数据库的表,但出现错误java.lang.UnsupportedOperationException
。我什至尝试使用cfloop查询和其他属性
得到错误复杂值无法转换为简单值。谁能告诉我我该如何循环这个查询?谢谢。
<cfquery name="q" datasource="datasource">
SHOW TABLES FROM datasource
</cfquery>
<cfloop collection ="#q#" item="i">
#q[i]#
</cfloop>
最佳答案
您收到该错误是因为 cfloop collection
需要一个结构,而不是查询对象。因此出现“UnsupportedOperation...”错误。
相反,您应该使用查询循环。生成的列名称是动态的,基于您提供的数据库名称。您可以对其进行硬编码或动态访问:
<cfset colNames = listToArray(q.columnList)>
<cfoutput query="q">
<cfloop array="#colName#" index="col">
#q[col][currentRow]#
</cfloop>
<br>
</cfoutput>
也就是说,我发现使用 metadata INFORMATION_SCHEMA
views 更容易。您可以像查询任何表一样查询它们。然后照常输出静态列名称。
<cfquery name="yourQueryName" ...>
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourDatabaseName'
</cfquery>
<cfoutput query="yourQueryName">
#TABLE_NAME# <br>
</cfoutput>
关于coldfusion - 如何循环遍历数据库的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711894/
我是一名优秀的程序员,十分优秀!