Php 如何将微秒插入MySQL数据库?
我正在制作flash游戏。从游戏中我将数据输入PHP,我需要将其插入数据库。所以我得到了格式为0:00.000[分:秒.微秒]的时间值。如何成功地将其插入数据库?我的SQL表的类型是时间。这是格式00:00:00[小时:分钟:秒] 问题是,若我从游戏11秒279微秒(从游戏格式0:11.279)中获得时间,那个么它只会在数据库中插入11分钟[00:11:00] 如何插入到数据库正常格式[分钟:秒.微秒] 我的代码如下所示: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
<?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
put6
中,它指定了6个小数位,也就是微秒精度。我尝试过,但在我将6放入Length/Values并单击“保存”按钮后,它显示已成功保存,但在我再次单击“编辑”后,此字段再次为空。而且它仍然显示格式00:00:00,我尝试从游戏中插入时间,现在是0:12.351,插入00:12:00。您使用的是哪个PHP版本?在PHP5.0之前,你不能使用分数秒。很抱歉这个愚蠢的问题,但我不知道这里是哪个版本的PHP。我在问题中粘贴的完整代码。