MySQL Timestamp - почему все нули? - PullRequest
5 голосов
/ 08 мая 2009

Я использую 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.

Что мне не хватает?

Ответы [ 4 ]

10 голосов
/ 08 мая 2009

Попробуйте установить значение по умолчанию CURRENT_TIMESTAMP вместо того, чтобы указывать его в атрибутах.

Справочник по MySQL

9 голосов
/ 08 мая 2009

Чего мне не хватает?

Вы не обновляете:)

Используйте DEFAULT CURRENT_TIMESTAMP вместе с ON UPDATE CURRENT_TIMESTAMP

3 голосов
/ 08 мая 2009

Если ваш столбец timestamp фиксирует только время вставки, используйте только

timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP

В противном случае, если это время модификации, используйте как указано ниже

timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
1 голос
/ 29 мая 2015

В моем случае работает так:

В phpMyAdmin:

ALTER TABLE `name_table`  ADD  `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

В PHP синтаксис для строки:

date('Y-m-d H:i:s')
...