Вопрос

Я использую 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 для строки:

date('Y-m-d H:i:s')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top