У меня есть база данных Mysql, где хранятся даты заказов клиентов.
Дата генерируется функцией php date('Y-m-d')
. Две записи в моей базе данных имеют значения '0000-00-00'
. Один из них был создан клиентом из Австралии, а другой - клиентом из Италии. Другие 5000 заказов в порядке.
Мой вопрос: как можно создать такую дату? Может ли это быть с отдельными настройками браузера?
Спасибо за помощь
Дата Php/Mysql сохранена как '0000-00-00'
Ответ 1
Единственная причина, по которой я могу найти, - либо ваш клиент ввел неправильный формат даты, либо он ввел пустую строку. Помните, что формат даты в Mysql равен yyyy-mm-dd.
Ответ 2
Это означает, что MySQL был передан недопустимое значение, не имеющее значения вообще. Проверьте свой код, чтобы убедиться, что он всегда имеет допустимое значение для этой даты.
Ответ 3
Я заметил, что у меня была такая же точная проблема, и оказалось, что я просто не добавлял одинарные кавычки вокруг моей переменной $date при ее вставке, поэтому она вставляла нулевое или пустое значение, которое появилось как 0000 -00-00 в базе данных. Как только я положил '$ date' вместо $date в мой оператор insert, значение появилось как ожидалось.
Ответ 4
Отметьте это сообщение default date '0000-00-00 00:00:00' или null. Он ответит на ваш вопрос. Вероятно, переменные года, месяца и дня по их коду на стороне клиента не были инициализированы.
ИЗМЕНИТЬ
Если это не так, то, похоже, у вас есть recently changed the Date-related column
в базе данных от VARCHAR or TEXT
до DATE
.
MySql changes
все NULL
значения в этом случае до '0000-00-00'
. Итак, если какое-то время назад, дата не была обязательным полем в пользовательском интерфейсе, и если она была принята как NULL, то это произошло.
Ответ 5
Возможно, у вас есть чисто запрограммированная или устаревшая функция mysql
. Например: CURDATE() + 5
правильно введет дату в БД, однако, если пользователь сделает это на 2016-12-28
, БД покажет 0000-00-00
. Он будет работать нормально, если текущая дата 2016-12-20. Абсолютно правильная функция будет CURDATE() + INTERVAL 5 DAY
.
Вы пишете в начале января, так что, возможно, у вас есть аналогичная проблема.