Как я могу сохранить рассчитанное время в базе данных, используя время типа данных MySQL? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь сохранить рассчитанное время в базе данных, используя тип данных mysqli time.Рассчитано означает, что я пытаюсь сохранить игровое время или время, потраченное пользователем на игру.Таким образом, у меня есть столбец spent_time, тип данных которого time, и я установил значение по умолчанию 00:00:00.

Когда я пытаюсь сохранить 5 минут и 30 секунд 00:05:30, запрос возвращает следующую ошибку

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect time value: '' for column 'time_spent' at row 1

, а следующий - это скрипт, который вставляет запись с использованием запроса

 $Log   = new Log;
 $Log->user_id       = request()->user()->id;
 $Log->time_spent    = $time;
 $Log->save();

Может ли кто-нибудь помочь мне, как я могу исправить эту ошибку, я был бы признателен.Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Вы используете тип поля для хранения time, что неправильно.Поле времени позволяет вам сохранить время (например, 8:00, 14:00 и 21:00), но не накопленное время (например, 1 секунду, 3 минуты или 5 часов).

Если вы хотите сохранить время в базе данных,либо измените способ регистрации времени, в течение которого пользователь находится в сети (возможно, в секундах, используйте для этого поле int), либо сохраните значение, которое вы указали как varchar, в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...