Установите дату в NULL в базе данных MySQL, оставляя поле даты пустым - PullRequest
0 голосов
/ 07 сентября 2011

у меня есть поле даты HTML 5 для даты выпуска, но не у всех элементов есть дата выпуска, поэтому я хочу иметь возможность установить его на ноль и полностью скрыть выпуск для этих элементов. Когда я оставляю поле даты пустым, ничего не происходит. Предыдущая дата (2011-01-01) все еще там (я думал, что у них была дата релиза, но я не знал, что это было, поэтому я просто выбрал одну из приведенных ниже таблиц, в которой ранее не было нуля). Я изменил его, чтобы разрешить null сейчас, и мне удалось сделать его нулевым в phpMyAdmin, но не используя мои собственные формы и php.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Есть два основных способа.

Во-первых, НЕ вставлять / обновлять дату, когда она пуста, полностью исключая ее из sql. Вы можете построить свой подготовленный цикл по значениям дат.

Второй метод заключается в инкапсуляции значения даты в функцию, которая проверяет, является ли она пустой. Хитрость в том, что вы обычно заключаете дату в (двойные) кавычки, но вы не можете этого сделать, если хотите вставить ноль (а не строку «ноль»)

Лично я использую класс pre-pdo, который я написал, чтобы подготовить sql и данные перед отправкой любого sql в базу данных.

Возможно, в pdo или mysqli уже есть встроенные ссылки, но я их не знаю.

на ваш вопрос: "что будет результатом нулевого значения даты?" я приглашаю вас прочитать этот старый ответ

0 голосов
/ 07 сентября 2011

Оставьте поле даты NULL

INSERT INTO table SET dt=NULL
...