在我的代码中,我首先创建了查询对象:
<cfset memberData = QueryNew('slug,pos,firstname,lastname,email') />
<cfset temp = QueryAddRow(memberData, #numMembers#) />
<!--- LOOP POPULATES QUERY OBJECT --->
<cfloop...</cfloop>
然后,我可以通过运行以下内容(按预期输出)来验证它是否已填充:
<cfoutput query="memberData">
#slug# - #pos#<br>
</cfoutput>
然后我尝试查询memberData查询对象,所有地狱都松了。如果我跑:
<cfquery name="members" dbtype="query">
SELECT slug,pos,firstname,lastname
FROM memberData
WHERE slug = #slug#
</cfquery>
我收到此错误:
Query Of Queries runtime error.
The select column reference [university] is not a column in any of the tables of the FROM table list.
在上面提到的输出测试中,我可以验证“大学”是slug列中的值之一。很明显,我的方法中缺少一些东西,但我对它可能是什么感到困惑。任何帮助将不胜感激!
答案 0 :(得分:2)
查询查询运行时错误 选择列参考 [university]不是FROM表的任何表中的列 列表
您的错误 是由于where子句中没有引号而没有其他内容:
此表达式查找slug列中的值等于CF slug变量(String)中的值的行:
WHERE slug = '#slug#'
另一方面,这个表达式意味着找到其中slug列中的值等于CF slug变量(String)中命名的列中包含的值的行:
WHERE slug = #slug#
您需要更改为SELECT *
的最可能原因是CF查询缓存。现在改回来应该可以解决问题。 总是按照“Al Everett”
<cfqueryparam .../>
答案 1 :(得分:1)
嗯,它并没有完全回答问题,但它足够接近我的需要:
<cfquery name="members" dbtype="query">
SELECT *
FROM memberData
WHERE slug = '#slug#'
</cfquery>
我在发布之前尝试用单引号括起#slug#
但没有成功,但这样做加将查询更改为SELECT *
修复了问题。对于我的内容,*
仅添加了一个检索到的值,因此在减慢过程中并不是一个真正的问题。