gpt4 book ai didi

php - 如何向MySQL数据库插入微秒?

转载 作者:行者123 更新时间:2023-11-29 00:16:38 24 4
gpt4 key购买 nike

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

更新:

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

db

最佳答案

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

TIME(number of decimals)

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

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

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

关于php - 如何向MySQL数据库插入微秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22771131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com