【发布时间】:2025-11-28 19:40:01
【问题描述】:
这是我的代码:
<cfdump var="#addEnt#" >
<!-- ADD -->
<cfquery name="add" datasource="testdatasource" dbtype="OLEDB">
UPDATE tblrequests
SET
lastname='#ucase(form.lastname)#',
firstname='#ucase(form.firstname)#',
middlei='#ucase(form.middlei)#',
title='#form.title#',
eod='#dateformat(form.eod,'m-d-yyyy')#',
dutystation='#form.dutystation#',
requestsnetwork=<cfif parameterexists(form.requestsnetwork)>1<cfelse>0</cfif>,
affiliation='#form.affiliation#',
commentssupvreq='#form.commentssupvreq#',
requestdelete=<cfif form.requestdelete IS NOT ''>'#dateformat(form.requestdelete,'m-d-yyyy')#',<cfelse>Null,</cfif>
commentssupvdelete='#form.commentssupvdelete#',
commentssupvedit='#form.commentssupvedit#',
dateemailrequested=<cfif form.dateemailrequested IS NOT ''>'#dateformat(form.dateemailrequested,'m-d-yyyy')#',<cfelse>Null,</cfif>
commentsit='#form.commentsit#',
bgcomplete=<cfif form.bgcomplete IS NOT ''>'#dateformat(form.bgcomplete,'m-d-yyyy')#',<cfelse>Null,</cfif>
dategroupscreated=<cfif form.dategroupscreated IS NOT ''>'#dateformat(form.dategroupscreated,'m-d-yyyy')#',<cfelse>Null,</cfif>
WHERE recnumber = #addEnt#
</cfquery>
当我提交表单时出现错误:
执行数据库查询时出错。 [宏媒体][SQLServer JDBC 驱动程序][SQLServer]关键字“WHERE”附近的语法不正确。
我的 cfdump 从 sql 中显示正确的 addent 数字,但在 sql 语句中使用 #addEnt# 不起作用。我的应用程序中的其他页面## 用于 SQL 查询,它们工作正常。
【问题讨论】:
-
您的最后一个 SET 语句有一个逗号。此外,您应该真正考虑使用
cfqueryparam来降低 SQL 注入的风险。现在您的查询很容易受到 SQL 注入攻击。 -
啊!必须删除两个逗号!谢谢!
-
如果没有查询参数,当名为 O'Hara 的人提交表单时,您的查询将崩溃。
标签: sql coldfusion coldfusion-11