【问题标题】:How to insert micro seconds to MySQL database?如何将微秒插入 MySQL 数据库?
【发布时间】:2014-03-31 20:05:00
【问题描述】:

我正在创建 Flash 游戏。从游戏中我得到数据到 PHP,我需要将它插入到数据库中。所以我得到格式为 0:00.000 [分钟:秒.微秒]的时间值。如何成功将它插入数据库?我的 SQL 表的类型是时间。这是格式 00:00:00 [小时:分钟:秒]。

问题是,如果我从游戏中获取时间 11 秒 279 微秒(从游戏格式 0:11.279)它到数据库仅插入 11 分钟 [00:11:00]。

如何插入数据库正常格式[分钟:秒.微秒]?

我的代码如下:

   <?php 
            $time= $_POST['time'];
            $username = $_POST['userName'];

            $mysqli = new mysqli("localhost","asd","asd","asd");
        if ($stmt = $mysqli->prepare("INSERT into myTable (time, userName) VALUE (?,?) ")) {

 if (!$mysqli->set_charset("utf8")) {
            printf("Error loading character set utf8: %s\n", $mysqli->error);
        } 
        $stmt->bind_param('ss', $time, $name);

           $stmt->execute();

           if ($stmt->error != '') {
               echo ' error:'.$stmt->error;
           } else {
               echo 'success';
           }
           $stmt->close();
        } else {
           echo 'error:'.$mysqli->error;
        }
        $mysqli->close();

更新:

我的时间列在数据库中的样子:

【问题讨论】:

  • microtime(true); 使用 PHP 但你必须存储为整数而不是日期时间
  • 谢谢你的回答,我需要把这条线放在什么地方?

标签: php mysql sql time


【解决方案1】:

您应该使用微秒创建时间列

TIME(number of decimals)

你可以在这里找到更多信息http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

编辑: 正如我在 cmets 中所建议的那样,您可以将其存储为十进制并编辑输入和输出。 这是一个例子。

$initial_value='11:02.234';
$exploded = explode(':',$initial_value);
$to_insert = $exploded[0]*60+$exploded[1];

echo "value to insert $to_insert";

要将 mysql 十进制输出转换为您的格式,请使用:

$value_from_the_db ='234.123';
$tmp = floor($value_from_the_db/60);
$to_print = $tmp .':' . (($value_from_the_db-$tmp * 60)>10?($value_from_the_db-$tmp * 60):'0'.($value_from_the_db-$tmp * 60));

echo "Value to show = $to_print";

【讨论】:

  • 感谢您的回答,我更新了我的问题,我的数据库列“时间”的样子。你能告诉我我需要如何编辑它吗?谢谢。
  • Length/Values 中输入6,指定6 位小数,也就是微秒精度。
  • 我试过了,但是在我把 6 放到 Lenght/Values 并点击保存按钮之后,它说保存成功,但是当我再次点击编辑后,这个字段又是空白的。此外,它仍然显示格式 00:00:00,我现在尝试从游戏中插入时间它是 0:12.351,它插入了 00:12:00。
  • 您使用的是哪个 PHP 版本?在 PHP 5.0 之前,您不能使用小数秒。
  • 抱歉这个愚蠢的问题,但我不知道这里是哪个版本的 PHP。我粘贴在我的问题中的完整代码。
猜你喜欢
  • 2022-01-22
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 2016-11-29
  • 1970-01-01
相关资源
最近更新 更多