Запись date() в mysql

273
06 июня 2017, 01:27

Доброго времени суток!Проблема в следующем - пытаюсь вставить подготовленную дату в базу в поле типа 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;
}

Как правильно подготовить запрос, чтобы записать в поле дату из переменной ?

Answer 1
У вас тип поля стоит в `datetime` а там формат хранения времени следующий 
ГГГГ-мм-дд ЧЧ-мм-сс

Если залить в такой формат только вторую часть $today = date("H:i:s",$time); //ЧЧ-мм-сс,То первая часть ГГГГ-мм-дд будет заполнена нулями,в принципе и вторая часть тоже.Потому что время которое вы питайтесь залить будет пытаться добавится к первой части.

Решение:

//......
$today = date("Y-m-d H:i:s",$time);
//......
Answer 2

Вы наверное неправильно указали структуры таблицы(тип поля). Если вам необходимо добавлять время, почему вы пишите только время без текущего дня? Ставить дату корректнее средствами самого MySql.

alter table tbl_name add created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

Попробуйте поле таким образом добавить и посмотрите как работает стандартными способами. Добавляйте запись, делая это поле Null, MySql сам выставит значение.

READ ALSO
Как обратиться к массиву в массиве?

Как обратиться к массиву в массиве?

Я получаю картинку из инпута, вот dd переменной которая получает весь гет и пост:

311
Не срабатывает preg_replace

Не срабатывает preg_replace

При наборе в адресную строку indexphp оно все равно не перенаправляет на index без

254
PHP функции в Javascript [требует правки]

PHP функции в Javascript [требует правки]

Имеет ли смысл реализовать функции PHP в javascript и или лучше пользоваться ajax или PHP?

351