【问题标题】:How can I store calculated time into database using mysqli data type time?如何使用 mysqli 数据类型时间将计算的时间存储到数据库中?
【发布时间】:2019-07-19 15:41:43
【问题描述】:

我正在尝试使用 mysqli 数据类型时间将计算出的时间存储到数据库中。计算意味着我正在尝试存储游戏时间或用户玩游戏所花费的时间。所以我有列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();

有人可以指导我如何解决此错误,我将不胜感激。谢谢

【问题讨论】:

  • 您需要展示一些关于如何插入此值的代码。显然,您尝试插入的值是空的。
  • 根据您的编辑,我们完全不知道$time 是什么。检查该变量的值。这应该是您的第一个调试步骤。 ;-)
  • @Qirel 这是00:15:07 的值$time
  • 似乎 $time 变量在某处被一些空/空字符串值覆盖,显示控制器方法的完整代码?
  • 那么您的Log 课程中可能发生了一些奇怪的事情,这应该是您检查的第二个 项。我真的猜不出来哪里出了问题,你需要做一些基本的调试并显示代码的所有相关部分,否则我们帮不了你。

标签: php laravel mysqli time


【解决方案1】:

您正在使用一种类型的字段来存储time,这是不正确的。时间字段允许您存储时间(例如上午 8 点、下午 2 点和晚上 9 点),但不能存储累计时间(例如 1 秒、3 分钟或 5 小时)。

如果您想将时间保存到数据库中,请更改注册用户在线时长的方式(可能以秒为单位,为此使用 int 字段)或将您拥有的值存储为 @ 987654323@在数据库中。

【讨论】:

    猜你喜欢
    • 2016-09-29
    • 1970-01-01
    • 2015-02-06
    • 2012-10-04
    • 2015-09-25
    • 2016-08-24
    • 2012-12-13
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多