在coldfusion函数中使用sql查询的正确方法是什么

sg5*_*552 2 mysql coldfusion function sql-insert coldfusion-2016

我有这个代码,将变量传递给函数并插入它.但是我收到了错误:

<cffunction name="insertSupplierPersonnel" output="false" access="public" returnType="struct">
    <cfargument name="name" type="string" required="true" />
    <cfargument name="email" type="string" required="false" default="" />
    <cfargument name="office_phone" type="string" required="false" default="" />
    <cfargument name="mobile_phone" type="string" required="false" default="" />
    <cfargument name="designation" type="string" required="false" default="" />

    <cfset var res = '' />

    <cfquery datasource="#session.dsn_aset#" result="res">
        INSERT INTO `supplier_personnel_incharge` (
            `name`,
            `email`,
            `office_phone`,
            `mobile_phone`,
            `designation`
        )
        VALUES
        (
            cfargument.name,
            cfargument.email,
            cfargument.office_phone,
            cfargument.mobile_phone,
            cfargument.designation
        ) ;
    </cfquery>

    <cfreturn res />
</cffunction>

<cfset res = insertSupplierPersonnel(name='#form.personnel_name#', email='#form.personnel_email#', office_phone='#form.personnel_office_phone#', mobile_phone='#form.personnel_mobile_phone#', designation='#form.personnel_designation#') />

<cfdump  var="#res#">
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

在此输入图像描述

有一个问题cfargument.name.使用cfargument插入查询的正确方法是什么?提前致谢.

Dan*_*cuk 7

首先,正确的范围arguments不是cfargument.所以,改变这种事情:

cfargument.name,
Run Code Online (Sandbox Code Playgroud)

对此:

arguments.name,
Run Code Online (Sandbox Code Playgroud)

接下来,您必须用磅符号包围变量名称以获取变量的值,即#arguments.name#.

接下来,使用查询参数,即<cfqueryparam value="#arguments.name#">.除此之外,它们还将转义SQL查询语法中使用的特殊字符.