Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将微秒插入MySQL数据库?_Php_Mysql_Sql_Time - Fatal编程技术网

Php 如何将微秒插入MySQL数据库?

Php 如何将微秒插入MySQL数据库?,php,mysql,sql,time,Php,Mysql,Sql,Time,我正在制作flash游戏。从游戏中我将数据输入PHP,我需要将其插入数据库。所以我得到了格式为0:00.000[分:秒.微秒]的时间值。如何成功地将其插入数据库?我的SQL表的类型是时间。这是格式00:00:00[小时:分钟:秒] 问题是,若我从游戏11秒279微秒(从游戏格式0:11.279)中获得时间,那个么它只会在数据库中插入11分钟[00:11:00] 如何插入到数据库正常格式[分钟:秒.微秒] 我的代码如下所示: <?php $time= $_PO

我正在制作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();

您应该使用

TIME(number of decimals)
你可以在这里找到更多信息

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

$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";

microtime(真)使用PHP,但您必须将其存储为整数而不是日期时间谢谢您的回答,我需要将此行放在哪个位置?谢谢您的回答,我更新了我的问题,我的数据库列“时间”是什么样子的。你能告诉我怎么编辑它吗?谢谢。在
Length/Values
put
6
中,它指定了6个小数位,也就是微秒精度。我尝试过,但在我将6放入Length/Values并单击“保存”按钮后,它显示已成功保存,但在我再次单击“编辑”后,此字段再次为空。而且它仍然显示格式00:00:00,我尝试从游戏中插入时间,现在是0:12.351,插入00:12:00。您使用的是哪个PHP版本?在PHP5.0之前,你不能使用分数秒。很抱歉这个愚蠢的问题,但我不知道这里是哪个版本的PHP。我在问题中粘贴的完整代码。