Исключение даты и времени в запросе coldfusion в cfc и mySQL - PullRequest
5 голосов
/ 22 июня 2010

Я перехожу с бэкэнда MS Access на 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>  

В поле базы данных установлено время и время по умолчанию NULL

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

Ответы [ 2 ]

6 голосов
/ 22 июня 2010

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

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

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

1 голос
/ 22 июня 2010

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

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

& zeroDateTimeBehavior = convertToNull

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

Роб

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...