mysql - 在coldfusion函数中使用sql查询的正确方法是什么
问题描述
我有这段代码可以将变量传递给函数并插入它。但我收到错误:
<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
插入查询的正确方法是什么?提前致谢。
解决方案
首先,正确的范围是arguments
,不是cfargument
。所以,改变这种事情:
cfargument.name,
对此:
arguments.name,
接下来,您必须用井号将变量名括起来以获取变量的值,即#arguments.name#
.
接下来,使用查询参数,即<cfqueryparam value="#arguments.name#">
. 除其他外,它们将转义 SQL 查询语法中使用的特殊字符。
推荐阅读
- spring-boot - http://localhost:8080/v2/api-docs 给出 ","additionalProperties":{"type":"object"}}},"401":
- node.js - 文件选择器有问题。文件选择器处理不适用于同一页面的多个连接
- ansible - 在ansible中打印子字符串的匹配数
- google-sheets-formula - 如何摆脱工作表中丑陋的 div/0 错误
- angular - NullInjectorError:迁移到 ionic 4 时没有平台提供程序
- apache-spark - 如何在 reduceByKeyAndWindow 中设置具体的开始时间?
- mysql - 从mysql中的sql文件加载sql文件
- docker - 当我运行我的应用程序的“docker run”时,它运行烧瓶。为什么我不能在 localhost 上访问它,但我可以在 127.0.0.1 上访问它?
- c# - 在构建后事件中确定平台(x86 或 x64)
- android - 如何从广告点击中获取当前打开的页面网址?