mySQL 在 cffunction 中定义和调用后不执行

标签 mysql coldfusion cfml cffunction

我已经为此工作了一段时间,并认为额外的一双眼睛(即你们)可能会派上用场。我定义了一个要在稍后调用并传递变量的 cffunction 中执行的 mySQL 插入查询。 cf 代码运行良好,但每当我去数据库查看代码是否已通过时,我都看不到任何数据被保存。我知道数据库本身没问题,因为所有其他 mySQL 查询都按其应有的方式工作。也许我在函数中调用的参数是错误的?这是有问题的代码:

<cffunction name='sendToDiffQry'>
    <cfargument name="loanid" type="any" required="yes"/>
    <cfargument name="oldValue" type="any" required="yes"/>
    <cfargument name="newValue" type="any" required="yes" />
    <cfargument name="fieldName" type="string" required="yes" />

    <cftransaction>

            <cfquery name="diffInsert" datasource="STLinux1MySQL" result="diff">
             INSERT into tax_search_diff_table
                (
                tax_search_loan_id,
                 old_value,
                 new_value,
                 field_name,
                 timeofedit
                )
                VALUES
                (
                <cfqueryparam value="#trim(Val(loan_id))#" cfsqltype="cf_sql_bigint">,
            <cfqueryparam value="#trim(oldValue)#" cfsqltype="cf_sql_varchar">,
             <cfqueryparam value="#trim(newValue)#" cfsqltype="cf_sql_varchar">,
             <cfqueryparam value="#trim(fieldName)#" cfsqltype="cf_sql_varchar">,
             Now()

                ) 
            </cfquery> 

        </cftransaction>
</cffunction>

我就是这样调用它的:

<cfset
        sendToDiffQry(url.tax_search_loan_id, form.old_frequency_id, form.frequency_id, 'frequency')>

我知道我也可以在 cfoutput 标签中调用它,但我得到了相同的结果。我确信我在这里遗漏了一些非常基本的东西。

最佳答案

对于tax_search_loan_id 列,您将参数作为loanid 并在cfqueryparam 中使用作为loan_id,因此请尝试此代码

<cffunction name='sendToDiffQry'>
  <cfargument name="loanid" type="any" required="yes"/>
  <cfargument name="oldValue" type="any" required="yes"/>
  <cfargument name="newValue" type="any" required="yes" />
  <cfargument name="fieldName" type="string" required="yes" />

    <cfquery name="diffInsert" datasource="STLinux1MySQL" result="diff">

       INSERT into tax_search_diff_table
       (
        tax_search_loan_id,
        old_value,
        new_value,
        field_name,
        timeofedit
       )
       VALUES
       (
        <cfqueryparam value="#trim(Val(arguments.loanid))#" cfsqltype="cf_sql_bigint">,
        <cfqueryparam value="#trim(arguments.oldValue)#" cfsqltype="cf_sql_varchar">,
        <cfqueryparam value="#trim(arguments.newValue)#" cfsqltype="cf_sql_varchar">,
        <cfqueryparam value="#trim(arguments.fieldName)#" cfsqltype="cf_sql_varchar">,
        <cfqueryparam value="#Now()#" cfsqltype="cf_sql_varchar">
       ) 

 </cfquery> 
</cffunction>

关于mySQL 在 cffunction 中定义和调用后不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948123/

相关文章:

cfml - 禁用查询的 HTML 输出

MySQL数据库-备份问题

php - 注意undefined_index,使用带有两个表的select来访问两个表的字段

php - 用于 SELECT AVG(column) 的 MySQL PHP 返回资源 ID 3

coldfusion - 使用应用程序范围时的并发性

coldfusion - CFMail 返回表格

coldfusion - 在 ColdFusion11 中使用 java 类 - CreateObject 函数的 java 对象类型未知

php - PDO - 显示来自 Select 语句的行

forms - CFML 从 form.zipcode 中仅选择 3 个整数

coldfusion - cflocation 在 CF10 中不再有效