要点:
我有一个CFC,可以成功地将一组表单字段插入到数据库表中。现在我想修改它以插入多个记录,但是当我尝试处理动态表单字段名称时出现错误。
详情:
我有(5)表单需要同时插入到db中的字段,作为不同的行。所以我循环并递增了字段编号。我为它创建了5个静态行。
<cfloop index="x" from="1" to="5">
<cfoutput>
<input name="ITIProgramName#x#" type="text" ..>
<input name="ITIProgVer#x#" type="text" ..>
</tr>
</cfoutput>
</cfloop>
结果是:
我尝试通过循环将字段插入到数据库中:
<cfloop from="1" to="5" index="x" >
<cfquery datasource="ITSReporting" name="InsertQuery">
INSERT INTO ITIPRO
( ServerID,
ServerName,
ProgramName,
CurrentProgVer,
LastUser,
UpDone )
VALUES
( '#Form.ServerID#',
'#Form.ServerName#',
'#Form[ITIProgramName#x#]#',
'#Form[ITIProgVer#x#]#',
'#CGI.Auth_User#',
#CreateODBCDateTime(Now())#
)
</cfquery>
</cfloop>
但它会产生错误
无效的CFML构造
我尝试了各种各样的东西,却找不到合适的语法。任何建议将不胜感激。
答案 0 :(得分:2)
变量的格式很接近但不完全存在,如果它们在引用块中,则只能对#进行双重换行。
'#Form["ITIProgramName#x#"]#'
我还建议在sql插入的变量周围使用cfqueryparam。