我正在创建flash游戏,其中计时器计算玩家玩的时间,游戏随着时间变量被发送到php,从这里我需要将它插入数据库。 时间格式是MM:SS(例如01:17),但是对于数据库它总是插入0.我不知道我需要选择哪种类型的“时间”列,我试过“INT”,“时间”,但是同样,总是“0”。你可以帮帮我吗?感谢。
这是我的代码:
$time = $_POST['time'];
$username = $_POST['userName'];
session_start();
$name = $_SESSION['vardas'];
$times = gmdate('i:s', $time);
$mysqli = new mysqli("localhost","my_db","pass","my_db");
if ($stmt = $mysqli->prepare("INSERT into eurokos (time, userName) VALUE (?,?) ")) {
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}
$stmt->bind_param('is', $times, $name);
// $stmt->bind_param("s", $username);
$stmt->execute();
if ($stmt->error != '') {
echo ' error:'.$stmt->error;
} else {
echo 'success';
}
$stmt->close();
} else {
echo 'error:'.$mysqli->error;
}
$mysqli->close();
更新
我添加了屏幕截图,我的时间列如何。可以用thsis吗?
答案 0 :(得分:0)
您需要使用time
格式,然后重试。
更新:
我刚刚想到你使用i
修饰符告诉mysql将你的时间字符串视为一个整数。
请改用s
。
此外,代替$times
绑定$time
变量,而不进行任何修改
所以,代码应该是
session_start();
$mysqli = new mysqli("localhost","my_db","pass","my_db");
$mysqli->set_charset("utf8");
$stmt = $mysqli->prepare("INSERT into eurokos (time, userName) VALUE (?,?)");
$stmt->bind_param('ss', $_POST['time'], $_SESSION['vardas']);
$stmt->execute();
答案 1 :(得分:0)
您需要查看time数据类型。