Исключение времени даты в запросе ColdFusion в cfc и MySQL

Я перемещаюсь от бэкенда Доступа MS до MySQL. Это раньше работало, но теперь не делает и я не могу изобразить проблему.

<cfargument required="false" name="expiry" type="any" default="" />


        <cfquery datasource='#arguments.dsn#'>      
            INSERT INTO users(expiry)
            VALUES (<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP"/>)
        </cfquery>  

Поле базы данных установлено на дату и время и ПУСТОЙ УКАЗАТЕЛЬ по умолчанию

Аргумент заполняется от поля формы, которое или пусто, или JavaScript проверил дату. Это дросселирует на пустом formfield.

5
задан James A Mohler 29 November 2012 в 22:34
поделиться

2 ответа

Прежде чем вы вмешиваетесь в настройки DSN, я бы также попытался изменить ваш на следующее:

<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP" null="#len(arguments.expiry) eq 0#" />

Это передаст истинный ноль в том случае, если значением аргумента является пустая строка. .

6
ответ дан 14 December 2019 в 08:42
поделиться

Реализация драйвера JDBC для MySQL в CF не очень хорошо обрабатывает значения NULL.

Вам необходимо добавить флаг конфигурации в настройки строки подключения DSN (в расширенном режиме) в администраторе CF

& zeroDateTimeBehavior = convertToNull

Должны вас правильно настроить.

Роб

1
ответ дан 14 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: