2

私のコードでは、最初にクエリ オブジェクトを作成します。

<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 列の値の 1 つであることを確認できます。明らかに、私のアプローチには何かが欠けていますが、それが何であるかについては困惑しています。どんな助けでも大歓迎です!

4

2 に答える 2

2

まあ、それは尋ねられた質問に完全に答えているわけではありませんが、私が必要としていたものには十分近いです:

<cfquery name="members" dbtype="query">
    SELECT *
    FROM memberData
    WHERE slug = '#slug#'
</cfquery>

投稿する前に一重引用符で囲んでみました#slug#が、成功しませんでしたが、それを実行し、クエリを変更しSELECT *て問題を修正しました。私のコンテンツでは、*取得した値をもう 1 つ追加するだけなので、プロセスが遅くなっても問題はありません。

于 2012-09-12T07:49:14.703 に答える
2

クエリ オブ クエリの実行時エラー。
選択列参照 [大学] は、FROM テーブル リストのどのテーブルの列でもありません

あなたのエラーは、 where 句に引用符がなく、他に何もないこと原因でした:

この式は、slug 列の値が CF slug 変数 (文字列) の値と等しい行を検索します。

      WHERE slug = '#slug#'

一方、この式は、slug 列の値が CF slug 変数 (文字列) で指定された列に含まれる値と等しい行を見つけることを意味します。

      WHERE slug = #slug#

変更する必要があった理由として最も可能性が高いのSELECT *は、CF クエリ キャッシングです。したがって、今すぐ元に戻すと問題が解決するはずです。そして、常に<cfqueryparam .../>「Al Everett」の提案に従って使用してください

于 2012-09-13T15:47:55.753 に答える