MySQL Timestamp - почему все нули?
-
10-07-2019 - |
Вопрос
Я использую PHPMyAdmin и у меня есть столбец таблицы MySQL с именем " timestamp. " Тип (удивительно!) - TIMESTAMP
, а в «атрибутах» я установил для него ON UPDATE CURRENT_TIMESTAMP
.
Однако каждая новая запись получает метку времени, которая выглядит следующим образом:
0000-00-00 00:00:00
Я явно установил значение по умолчанию, равное none, но когда я сохраняю данные и возвращаюсь к просмотру, для них устанавливаются все нули, как указано выше.
Соответствующие страницы записей PHP обращаются с этим запросом:
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
Все это работает под XAMPP.
Что мне не хватает?
Решение
Что мне не хватает?
Вы не обновляете:)
Используйте DEFAULT CURRENT_TIMESTAMP
вместе с ON UPDATE CURRENT_TIMESTAMP
Другие советы
Попробуйте установить значение по умолчанию CURRENT_TIMESTAMP
вместо того, чтобы указывать его в атрибутах.
Если ваш столбец timestamp
фиксирует только время вставки, используйте только
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
В противном случае, если это время модификации, используйте как показано ниже
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
В моем случае работает так:
В phpMyAdmin:
ALTER TABLE `name_table` ADD `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
В синтаксисе PHP для строки:
date('Y-m-d H:i:s')