你见过这种奇怪的QoQ错误[ColdFusion]吗?

你见过这种奇怪的QoQ错误[ColdFusion]吗?,coldfusion,coldfusion-8,qoq,Coldfusion,Coldfusion 8,Qoq,我已确认第一个查询按预期工作 <cfquery name="validation_info" dbtype="query"> select shipViaName,TOTALSHIPRATE from s_c_c.qShipCalc WHERE sku in (#preserveSingleQuotes(validate)#) </cfquery> <cfquery name="validation_inf

我已确认第一个查询按预期工作

<cfquery name="validation_info" dbtype="query">
    select      shipViaName,TOTALSHIPRATE
    from        s_c_c.qShipCalc
    WHERE       sku in (#preserveSingleQuotes(validate)#)
</cfquery>
<cfquery name="validation_info2" dbtype="query">
    select      TOTALSHIPRATE
    from        validation_info
    WHERE       shipViaName = "FedEx 3 Day"
</cfquery>
我建议对变量使用cfqueryparam,试试这个

<cfquery name="validation_info" dbtype="query">
    SELECT      
        shipViaName,
        TOTALSHIPRATE
    FROM        
        s_c_c.qShipCalc
    WHERE       
        sku IN (<cfqueryparam value="#validate#" cfsqltype="CF_SQL_INTEGER" list="yes" /> )
</cfquery>
我建议对变量使用cfqueryparam,试试这个

<cfquery name="validation_info" dbtype="query">
    SELECT      
        shipViaName,
        TOTALSHIPRATE
    FROM        
        s_c_c.qShipCalc
    WHERE       
        sku IN (<cfqueryparam value="#validate#" cfsqltype="CF_SQL_INTEGER" list="yes" /> )
</cfquery>


在第二次SQL查询中,您需要对字符串使用单引号而不是双引号。

在第二次SQL查询中,您需要对字符串使用单引号而不是双引号。

您有验证中的示例吗?以及验证信息中的示例?您在第二个查询中尝试过单引号吗?另外,我建议在你的QoQ中使用cfqueryparam。因为您的第一个查询使用了一个值列表,在名单上,在名单上,属性上,属性上,在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,在哪里,在属性上,在属性上,在名单上,属性属性属性属性属性属性属性上,在名单上,属性上,属性上,属性属性上,属性上,属性上,属性上,属性上,属性上,属性上,属性上,属性上,在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在,在,在,在,在,在,在,在,在那里,SKU在,在,在,在,在,在,在,在,在,在,在,在那里,在,在,在。124; 41.9 | |天哪!单引号有效!世界跆拳道联盟?!通常,jdbc约定使用单引号而不是双引号。但是使用cfqueryparam,而不是混淆引号,完全避免了整个问题。它为你处理一切。你有什么样的样品吗?以及验证信息中的示例?您在第二个查询中尝试过单引号吗?另外,我建议在你的QoQ中使用cfqueryparam。因为您的第一个查询使用了一个值列表,在名单上,在名单上,属性上,属性上,在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,在哪里,在属性上,在属性上,在名单上,属性属性属性属性属性属性属性上,在名单上,属性上,属性上,属性属性上,属性上,属性上,属性上,属性上,属性上,属性上,属性上,属性上,在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在哪里,SKU在,在,在,在,在,在,在,在,在那里,SKU在,在,在,在,在,在,在,在,在,在,在,在那里,在,在,在。124; 41.9 | |天哪!单引号有效!世界跆拳道联盟?!通常,jdbc约定使用单引号而不是双引号。但是使用cfqueryparam,而不是混淆引号,完全避免了整个问题。它为您处理所有事情。希望保留单引号不会返回列表,从而阻止CF通过将单引号加倍来自动保护查询。因此,使用cfqueryparam显然是一种可行的方法。即使是QoQ的。@Leigh,我也没有意识到这是CF.Yep中内置的一个函数。但它不再被广泛使用,因为它在数据库查询中存在sql注入风险。希望preserveSingleQuotes不会返回列表,从而阻止CF通过将单引号加倍来自动保护查询。因此,使用cfqueryparam显然是一种可行的方法。即使是QoQ的。@Leigh,我也没有意识到这是CF.Yep中内置的一个函数。但是它不再被广泛使用,因为它在数据库查询中存在sql注入风险。当然,我在帖子的评论中没有看到这个建议。哈哈,不用担心。如果我想回答这个问题,我会说:当然,我没有在帖子的评论中看到这个建议。哈哈,不用担心。如果我想回答这个问题,我会:
<cfquery name="validation_info" dbtype="query">
    SELECT      
        shipViaName,
        TOTALSHIPRATE
    FROM        
        s_c_c.qShipCalc
    WHERE       
        sku IN (<cfqueryparam value="#validate#" cfsqltype="CF_SQL_INTEGER" list="yes" /> )
</cfquery>