gpt4 book ai didi

mysql - 为什么这个Left Join在Coldfusion/MySQL中会导致死循环?

转载 作者:行者123 更新时间:2023-11-29 04:51:14 25 4
gpt4 key购买 nike

我正在 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) 

它被输入到实际的查询语法中:

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

如果我尝试触发它,服务器就会挂起,我需要重新启动浏览器选项卡以结束 session 。我已经从我的选择中删除了所有其他搜索条件。错误是由于 cfqueryparam 为我的文本结构提供的。

但是我不知道问题出在哪里,因为我从来没有得到错误。浏览器死机了,所以我想我正在创建某种无限循环。

问题
谁能从我的代码中看出我做错了什么?

谢谢!

编辑:我设法从服务器挂起转到提交错误。但由于该脚本是由 Ajax 调用触发的,而且我无法远程访问 CFadmin,因此我需要盲目猜测可能是什么问题。

最佳答案

您在这里所做的不是 cfqueryparam 的目的,我建议您阅读 cfqueryparam 的正确用法 - http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f6f.html

将您的代码重构为如下所示的代码应该会按您的预期工作。我将脚本替换为标签,只是根据我的喜好,如果您愿意,请随意使用脚本。

<cfquery ...>
SELECT art, count(*) as number
FROM article a
LEFT JOIN pricelists p ON
<cfloop query="q" >
<cfif q.listitem IS ''>
(a.iln = p.iln
AND p.pl= "-Standard-"
AND p.ean = a.ean
AND p.iln = <cfqueryparam value='#q.iln_verkaeufer#' />
)
<cfelse>
(a.iln = p.iln
AND p.pl= <cfqueryparam value="#q.pl#"/>
AND p.ean = a.ean
AND p.iln = <cfqueryparam value="#q.userID#" />
)
</cfif>
<cfif NOT q.isLast()>OR</cfif>
</cfloop>
WHERE ...
</cfquery>

关于mysql - 为什么这个Left Join在Coldfusion/MySQL中会导致死循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com