MySQL: ОБНОВЛЕНИЕ ПРОТИВ INSERT для столбца INT - PullRequest
0 голосов
/ 07 июня 2011

В настоящее время я использую класс активной записи CodeIgniters для ОБНОВЛЕНИЯ таблицы MySQL.Один из столбцов - это INT, значение по умолчанию которого я установил в NULL, а в поле NULL - TRUE.Когда я вставляю запись и оставляю это поле в форме пустым, нет проблем, для него устанавливается значение NULL.Однако, когда я делаю UPDATE с пустым полем в форме, MySQL устанавливает значение равным 0. Есть ли способ заставить MySQL интерпретировать UPDATE так же, как это делает INSERT, т.е. если значение формы пустое, оно устанавливает егоNULL, а не 0?

Приветствия

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

Скорее всего, пустая строка '' отправляется в базу данных, поэтому она преобразуется в поле INT как 0 - проверьте точный запрос SQL (например, включив профилировщик: $ this-> output-> enable_profiler (TRUE) в вашем контроллере),Если это так, добавьте в вашу модель фрагмент, который заменит '' на NULL при обновлении.

0 голосов
/ 07 июня 2011

Запустили ли вы трассировку в базе данных, чтобы точно узнать, что SQL CodeIgniters отправляет базу данных?Похоже, что CodeIgniters могут отправлять ноль в MySQL ...

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