我有这段代码,它将变量传递给函数并插入它。但是我遇到了错误:
<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#">
我收到此错误:
cfargument.name
有问题。使用cfargument
进行插入查询的正确方法是什么?预先感谢。
答案 0 :(得分:6)
首先,正确的范围是arguments
,而不是cfargument
。所以,改变这种事情:
cfargument.name,
对此:
arguments.name,
接下来,您必须在变量名称前加上井号以获取变量的值,即#arguments.name#
。
接下来,使用查询参数,即<cfqueryparam value="#arguments.name#">
。除其他外,它们将转义SQL查询语法中使用的特殊字符。
答案 1 :(得分:0)
总结以上所有正确答案和评论。这是您的最佳做法:
returnType
应该是“查询”,而不是“结构” default
值,则CF会将参数识别为“不需要” cfqueryparam
可选
null
的{{1}}属性插入cfqueryparam
NULL