MySQL Timestamp – почему все нули?

Я использую 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 вместо того, чтобы поместить его в атрибуты.

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

Если в столбце 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 sintax для строки:

 date('Ymd H:i:s')