Переданное значение обрабатывается как пустое в CFQUERYPARAM - PullRequest
1 голос
/ 31 марта 2012

Это сильно сбивает меня с толку, так как я делал это сто раз, но теперь это подводит меня.

Я выполняю базовое обновление запроса с использованием параметров CF, и первичный ключ таблицы передает пустое значение, что приводит к критической ошибке.

Даже если я ввожу жестко закодированный номер в #form.id placeholder#, я получаю это:

Invalid data '' for CFSQLTYPE CF_SQL_NUMERIC.

Вот моя база кода

<cfquery name="updateIdea" datasource="#request.db#">
            UPDATE freshideas
            SET subject = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.subject#" null="no" />,
                content = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.content_text#" />,
                postmonth = <cfqueryparam cfsqltype="cf_sql_numeric" value="#form.postmonth#" />,
                postyear = <cfqueryparam cfsqltype="cf_sql_numeric" value="#form.postyear#" />,
                imglink = <cfqueryparam cfsqltype="cf_sql_varchar" value="#image#" />,
                oindex = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.oindex#" null="no" maxlength="3" />
            WHERE id = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.id#" null="no" />
        </cfquery>

Вставка работает нормальнои идентификатор столбца - auto_increment int (5).

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Я получил это много в моей текущей кодовой базе. При добавлении cfqueryparams разработчик принимал значения, а иногда ожидаемое целое число - пустая строка.

Если подходит пустая строка / ноль, используйте это http://www.carehart.org/blog/client/index.cfm/2007/3/5/cfqueryparam_null

В моем случае целое число должно быть целым числом, поэтому обычно проблема заключается в том, как эта переменная устанавливается как запрос, возвращающий 0 записей.

1 голос
/ 31 марта 2012

Это длинный путь, но если вы недавно внесли изменения в таблицу, у вас могут возникнуть проблемы с кэшированием схемы.Попробуйте перезапустить ваш CF-сервер или даже просто добавить несколько пробелов в ваш запрос.Вот пост с дополнительной информацией.

http://www.coldfusionmuse.com/index.cfm/2005/4/29/dbschemaChange

...