Coldfusion 将结构数据插入数据库

问题描述 投票:0回答:1

我在寻找一种方法来正确地将结构数据插入到我的 CF8 数据库中时遇到了一些困难。

我有这样的结构

struct
COMMENTS    undefined
DESC    1

正如您所看到的,注释显示的值是未定义的,我现在正在尝试将数据插入到我的数据库中。我的数据库将接受 NULL 值,所以我尝试了以下方法 关于插入参数

 INSERT INTO AUDIT 
            (
                COMMENT,
                DESC) 
 VAULES (

        <cfqueryparam cfsqltype="cf_sql_varchar" value="#object.COMMENT#" null="#NOT len(trim(object.COMMENT))#">,
    <cfqueryparam cfsqltype="cf_sql_numeric" value="#object.DESC#" null="#NOT len(trim(object.DESC))#">,
 )

我在 CF 上遇到的错误是

Error Occurred While Processing Request
Element COMMENT is undefined in OBJECT.

我如何处理这个插入数据库?我正在考虑如果对象未定义则将其插入为 null 但不清楚如何执行此操作。

javascript sql coldfusion structure
1个回答
0
投票

您似乎遇到了错误,因为 COMMENT 键未在您的对象中定义。要处理这种情况并在 COMMENT 键未定义时将 NULL 插入数据库,可以使用 structKeyExists 函数检查该键是否存在于结构中。以下是修改代码的方法:

<cfif structKeyExists(object, "COMMENT")>
    <cfset commentValue = object.COMMENT>
<cfelse>
    <cfset commentValue = "">
</cfif>

<cfif structKeyExists(object, "DESC")>
    <cfset descValue = object.DESC>
<cfelse>
    <cfset descValue = "">
</cfif>

<cfquery>
    INSERT INTO AUDIT 
    (
        COMMENT,
        DESC
    ) 
    VALUES 
    (
        <cfqueryparam cfsqltype="cf_sql_varchar" value="#commentValue#" null="#NOT len(trim(commentValue))#">,
        <cfqueryparam cfsqltype="cf_sql_numeric" value="#descValue#" null="#NOT len(trim(descValue))#">
    )
</cfquery>
© www.soinside.com 2019 - 2024. All rights reserved.