Доброго времени суток!Проблема в следующем - пытаюсь вставить подготовленную дату в базу в поле типа datetime, запрос отрабатывает без ошибок, но значение в поле 0000-00-00.
$time=time()+7*60*60;
$today = date("H:i:s",$time);
$query='INSERT INTO test SET time="'.$today.'"' ;
if ($link->query($query) === TRUE) {
echo "Время добавлено";
} else {
echo "Error: " . $query . "<br>" . $link->error;
}
Как правильно подготовить запрос, чтобы записать в поле дату из переменной ?
У вас тип поля стоит в `datetime` а там формат хранения времени следующий
ГГГГ-мм-дд ЧЧ-мм-сс
Если залить в такой формат только вторую часть $today = date("H:i:s",$time); //ЧЧ-мм-сс,То первая часть ГГГГ-мм-дд будет заполнена нулями,в принципе и вторая часть тоже.Потому что время которое вы питайтесь залить будет пытаться добавится к первой части.
Решение:
//......
$today = date("Y-m-d H:i:s",$time);
//......
Вы наверное неправильно указали структуры таблицы(тип поля). Если вам необходимо добавлять время, почему вы пишите только время без текущего дня? Ставить дату корректнее средствами самого MySql.
alter table tbl_name add created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
Попробуйте поле таким образом добавить и посмотрите как работает стандартными способами. Добавляйте запись, делая это поле Null, MySql сам выставит значение.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники