Я создал PHP-скрипт, который анализирует HTML-страницу, создает запрос MySQL и вставляет анализируемые данные в таблицу MySQL. Все работает нормально, за исключением одного: поля даты. Когда PHP запускает инструкцию MySQL, даты в таблице читаются 0000-00-00. Если я повторяю запрос MySQL, это приведет к следующему:
INSERT INTO dispatch_table (dispatch_date, dispatch_time, dispatch1, dispatch2, dispatch3, dispatch4, dispatch5, dispatch6, dispatch7, dispatch8, dispatch9, dispatch10, dispatch11, dispatch12, dispatch13, dispatch14, dispatch15, dispatch16)VALUES ('2010-02-02', '10:46:17', '31.90' , '32.15','32.24','32.39','33.46','35.18','39.33','39.39','40.92','41.79','41.82','44.35','45.47','46.89','47.13','67.59');
Если я скопирую и вставляю инструкцию в таблицу MySQL, она вставляет дату просто отлично, но когда PHP пытается ее вставить, мне дают все 0. Поле dispatch_date является полем «дата» в MySQL. Прежде чем вставлять даты с кодом PHP, дата вставки преобразуется в строку (я думал, что это может решить мою проблему). Может ли кто-нибудь дать мне понять это?
От tizag.com
Когда вы вводите даты, находящиеся вне диапазона или в неправильном формате для определенного типа даты, MySQL часто просто вводит значение по умолчанию для всех нулей.
Вы храните их в неправильном формате.
2010-02-02 (% Y-% m-% d) – формат по умолчанию, но его можно изменить. Запустите этот запрос, чтобы узнать, какие значения находятся на вашем сервере:
SELECT @@date_format, @@datetime_format;
Если они не совпадают, вам придется либо изменить свои запросы, либо изменить переменные @@ date_format и @@ datetime_format. Они могут меняться в зависимости от сеанса:
SET @@session.date_format='%Y-%m-%d'; SET @@session.datetime_format='%Y-%m-%d %H:%i:%s';