Intereting Posts
PHP JSON или массив в XML Как избавиться от ошибки MySQL «Подготовленная заявка должна быть переработана» Эффективный способ определения результата тестовой матрицы Создавайте новые html-таблицы по годам, основываясь на изменении лет в порядке убывания Несколько первичных ключей с Doctrine 1 и Symfony 1? передача переменной javascript в php Альтернативный способ записи строковых литералов в PHP? (без «или») Точный загрузчик на ведро S3, получающий ошибку 405 Не допускается ошибка Как добавить РОЛЬ ПОЛЬЗОВАТЕЛЯ для пользователя в WordPress? Загрузка php-изображений с помощью jquery post Скрыть платежный адрес с страницы проверки, но сохранить информацию Настройка Paypal для подключения к скрипту Каковы недостатки использования класса базы данных PHP в качестве одноэлементного? Как определить степень подобия двух изображений, используя php Лучший способ проверить существующего пользователя в базе данных mySQL?

Дата Php / Mysql сохранена как '0000-00-00'

У меня есть база данных Mysql, где хранятся даты заказов клиентов.

Дата генерируется date('Ym-d') функции php date('Ym-d') . Две записи в моей базе данных имеют значения '0000-00-00' . Один из них был создан клиентом из Австралии, а другой – клиентом из Италии. Другие 5000 заказов в порядке.

Мой вопрос: как можно создать такую ​​дату? Может ли это быть с отдельными настройками браузера?

Спасибо за помощь

Единственная причина, по которой я могу найти, – либо ваш клиент ввел неправильный формат даты, либо он ввел пустую строку. Помните, что формат даты в Mysql равен yyyy-mm-dd.

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

Я заметил, что у меня была такая же точная проблема, и оказалось, что я просто не добавлял одинарные кавычки вокруг моей переменной $ date при ее вставке, поэтому она вставляла нулевое или пустое значение, которое появилось как 0000-00- 00 в базе данных. Как только я поставил '$ date' вместо $ date в мой оператор insert, значение появилось как ожидалось.

Проверьте это сообщение по умолчанию «0000-00-00 00:00:00» или «null» . Он ответит на ваш вопрос. Вероятно, переменные года, месяца и дня по их коду на стороне клиента не были инициализированы.

EDIT. Если это не так, то, похоже, recently changed the Date-related column вы recently changed the Date-related column в базе данных от VARCHAR or TEXT до DATE .

MySql changes все значения NULL в этом случае на '0000-00-00' . Итак, если какое-то время назад, дата не была обязательным полем в пользовательском интерфейсе, и если она была принята как NULL, то это произошло.

Это может быть так, что у вас есть чисто запрограммированная или устаревшая функция mysql . Например: CURDATE() + 5 правильно CURDATE() + 5 дату в БД, однако, если пользователь сделает это в 2016-12-28 БД покажет 0000-00-00 . Он будет работать нормально, если текущая дата 2016-12-20. Абсолютно правильной функцией будет CURDATE() + INTERVAL 5 DAY . Вы пишете в начале января, так что, возможно, у вас есть аналогичная проблема.