2014-08-29 35 views
-2

我问了一个类似的问题,但其中的细节太长,无法在那里发表评论。我在CF中有一个插入语句,它将值输入到MYSQL数据库的空表中。当我手动将值输入到CF INSERT语句中时,它的工作效果很好。但是当我试图让CF从表单插入数据时,什么也没有发生。没有错误信息,网页出现就好了。我的CF声明是这样的:INSERT语句和Coldfusion的问题

<cfquery name="updateInsOpTable" datasource="applewood"> 
INSERT INTO ins_opt_table (address,option1,option2,option3,-etc.) 
VALUES ('#form.address#','#form.option1#','#form.option2#','#form.option3#'-etc.) 
</cfquery> 

这是我的形式:

<p> 
<cfoutput query="getCategory"> 
<cfif #idOpCategories# IS 1> 
#UCase(getCategory.categoryName)# 

</cfif> 
</cfoutput> 

</p> 

<p> 

<cfoutput query="getOptions"> 
<cfif idOpCategories eq 1> 
<input type="checkbox" value="#getOptions.idOptions#" name="option1" /> 
#getOptions.option# <br /> 
</cfif> 
</cfoutput> 

任何帮助,将不胜感激。

+1

你试过为了验证数据是否正确运行INSERT之前倾销FORM范围是什么?您是否在CFQUERY周围放置了TRY/CATCH来捕捉任何错误?你试图做什么来调试这个问题? – 2014-08-29 15:29:52

+0

是的,转储结果也很好。我甚至在INSERT语句后面加上了“完成”一词,并且它打印出来很好。我也手动将数据放入插入语句中,并且它应该像它应该那样工作。我不擅长CF,所以我不太熟悉TRY/CATCH。我会审查参考并尝试。我在查询之前有一个CFIF语句: 2014-08-29 15:41:29

+1

“转储结果正常”这是什么意思?这是否意味着它会丢弃你期望的值?将此参数添加到cfquery:result =“resultdump”并为resultdump执行cfdump。查询看起来应该是这样吗? – WillardSolutions 2014-08-29 15:46:03

回答

1

CFIF声明是问题所在。我把它格式错了,这显示了我生疏的技能。我用的是:

IsDefined(#form.submitOptions#) 

和实际工作的代码是:

IsDefined("form.submitOptions") 
+2

仅供参考,'IsDefined'需要变量的*名称*。通过在变量周围使用#号,实际上将该字段的*值*作为“名称”传入。这就是为什么它不起作用。也就是说,'StructKeyExists'通常比'IsDefined'更受欢迎,因为它更精确。 – Leigh 2014-08-29 17:34:19

+0

我通常使用最基本的CF命令。当我为客户工作时,我通常会坚持我所知道的,所以我不会花太长时间学习我不熟悉的命令。我知道我应该花些时间来进一步提高自己的知识水平,并且我会在这里看到每个人给我的信息。我很欣赏教育和编辑。 – 2014-08-30 17:21:11