2014-08-29 2 views
-2

Я задал аналогичный вопрос, но детали были слишком длинными для комментариев. У меня есть оператор insert в 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

Пытались ли вы демпинг объем FORM перед запуском INSERT, чтобы проверить правильность данных? Вы положили TRY/CATCH вокруг CFQUERY, чтобы поймать какие-либо ошибки? Что вы пытались сделать, чтобы отладить эту проблему? –

+0

Да, дампа тоже получается. Я даже положил слово «Готово» после инструкции INSERT и распечатал его в порядке. Я также поместил данные вручную в инструкцию insert и работал так, как должен. Я не владею CF, поэтому я не очень хорошо знаком с TRY/CATCH. Я просмотрю ссылку и попробую. У меня есть инструкция CFIF прямо перед запросом:

+1

«свалка получается отлично» Что это значит? Означает ли это, что он сбрасывает значения, которые вы ожидаете? Добавьте этот параметр в cfquery: result = "resultdump" и сделайте cfdump для resultdump. Кажется ли, что запрос выглядит так? – WillardSolutions

ответ

1

Заявление CFIF было проблемой. Я неправильно отформатировал его, что показывает мои ржавые навыки. Я использую:

IsDefined(#form.submitOptions#) 

и код, который на самом деле работает это:

IsDefined("form.submitOptions") 
+2

FYI, 'IsDefined' ожидает * имя * переменной. Используя # знаков вокруг переменной, вы фактически передавали * значение * этого поля в качестве «имени». Вот почему это не сработало. Тем не менее, 'StructKeyExists' обычно предпочтительнее' IsDefined', потому что это более точно. – Leigh

+0

Обычно я использую самые простые команды CF. Когда я работаю для клиентов, я обычно придерживаюсь того, что знаю, поэтому я не занимаюсь слишком долгое обучение командам, с которыми я не знаком. Я знаю, что я должен занять время, чтобы продолжить свои знания, и я буду изучать информацию, которую все мне дали здесь. Я ценю образование и редактирование. –