1

Coldfusion8 (MySQL 5.0.88) で検索クエリを実行しています。

クエリは、次のように Coldfusion で LEFT JOIN を構築します。

<cfquery datasource="db" name="q">
    SELECT ...
</cfscript>

結果をループして、MySQL クエリ構文を作成します。

<cfset variables.pl= "LEFT JOIN pricelists p ON ">
<cfloop query="q" >
    <cfscript>
    if( q.listitem IS '' )    
        variables.pl = variables.pl & '(a.iln = p.iln AND p.pl= "-Standard-" AND p.ean = a.ean AND p.iln = "#q.iln_verkaeufer#") OR ';
    else
        variables.pl= variables.pl & '(a.iln = p.iln AND p.pl= "#q.pl#" AND p.ean = a.ean AND p.iln = "#q.userID#") OR
    </cfscript>
</cfloop>
<cfset variables.pl= variables.pl& "(1=0)">

したがって、最終的には次のようになります。

LEFT JOIN plist p ON (p.iln = a.iln AND p.pl= "-Standard-" AND p.iln = "1111111111111") OR (p.iln = a.iln AND p.pl= "I" AND p.iln = "1111122222221") OR (1=0) 

実際のクエリ synatx に入力されます。

SELECT art, count(*) as number
    FROM article a
    <cfqueryparam value="#variables.pl#" cfsqltype="cf_sql_longvarchar">
WHERE ...

これをトリガーしようとすると、サーバーがハングアップするだけで、ブラウザー タブを再起動してセッションを終了する必要があります。選択から他のすべての検索条件を削除しました。エラーは、cfqueryparam がテキスト コンストラクトに供給されているために発生します。

ただし、エラーが発生しないため、何が問題なのかわかりません。ブラウザが死んでしまうので、ある種の無限ループを作成していると思います。

質問
私のコードから、私が間違っていることを誰かが知ることができますか?

ありがとう!

編集: サーバーのハングアップからコミットエラーに至ることができました。しかし、スクリプトは Ajax 呼び出しによってトリガーされ、CFadmin にリモートでアクセスできないため、何が問題なのか盲目的に推測する必要があります。

4

1 に答える 1