2013-03-21 1 views
0

Я запускаю два экземпляра одного и того же приложения, однако только на одном я получаю сообщение об ошибке при попытке отобразить немеченые изображения.Ошибка Coldfusion sql возникает только в одном экземпляре приложения

Журнал говорит:

Ошибка Выполнение базы данных Query.You есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 3. Конкретная последовательность файлов включена или обработана: [скрыто] ... images_archive.cfm, строка: 24

Строка 24 этого файла:

WHERE <cfloop query="unlabeledTags">tagID <> #ID#<cfif #currentRow# NEQ #recordCount#> AND </cfif></cfloop> 

Любая помощь очень ценится

+0

Следует иметь в виду, что номера линий являются приблизительными. Но если запрос 'unlabeledTags' был пустым, вы получили бы' WHERE (ничего после него) ', что, безусловно, вызовет синтаксическую ошибку. Но это всего лишь предположение. Невозможно сказать, не видя сгенерированного sql и значения переменных. – Leigh

ответ

1

Как Лей сказал ваш вопрос, вероятно, с пустым множеством запросов, но т o немного очистите свой код. Я бы рекомендовал написать ваш SQL, как это.

WHERE tagID NOT IN (<cfqueryparam cfsqltype="cf_sql_integer" value="#ValueList(unlabeledTags.ID)#" list="true">) 

или вы можете написать это как этот

WHERE 1 = 1 
<cfloop query="unlabeledTags"> 
    AND tagID <> <cfqueryparam cfsqltype="cf_sql_integer" value="#unlabeledTags.ID#"> 
</cfloop> 

позволяют запрос работать только когда у вас есть RecordCount в вашем запросе, хотя.

+0

... и вы должны использовать 'cfqueryparam'. Если вы идете с подходом 'NOT IN (...)', просто примените атрибут 'list = true'. – Leigh

+0

@Leigh хорошая точка. Я добавил их. –

+0

Если есть пустой набор запросов, этот подход также вызовет ошибку. –