【问题标题】:MySQLi insert MM:SS format to databaseMySQLi 将 MM:SS 格式插入数据库
【发布时间】:2013-05-05 09:36:13
【问题描述】:

我正在创建 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();

更新

我添加了屏幕截图,我的时间列的样子。这个可以吗?

【问题讨论】:

  • 尝试使用varchar
  • 感谢您的回答,但 varchar(100) 也返回 0。
  • 它不是Type of "time" table,它是time 列的类型...您需要将列类型更改为time,我相信它是int
  • 当我使用列类型“时间”时,它返回给我00:00:00
  • 那我怀疑你的$_POST['time']

标签: mysql flash time insert mysqli


【解决方案1】:

您需要查看time 数据类型。

【讨论】:

  • 涉及大量代码,是否愿意使用 OP 发布的代码添加一些示例?这样一来,您的答案将更有意义,而不仅仅是对于其他任何登陆此问题以寻找答案的人。
  • 如果问题出在他的代码中,我会的。在我看来,问题在于数据库中eurokos 表的结构。
  • 然后在你的答案中解释一下,以便 OP 可以查看正确的位置
【解决方案2】:

您需要使用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();

【讨论】:

  • 当我使用列类型“时间”时,它返回给我00:00:00。也许在这里$times = gmdate('i:s', $time);我弄错了?
  • 可能是。为什么不把这个值呼出来看看呢?
  • 当我使用 echo 这个值时它返回 00:00。
  • 但是它不能得到其他值,因为计时器只有在游戏开始时才开始计时。仅在当前时间 var 的游戏中从动作脚本发送到 php。因此,虽然游戏未开始时间始终具有 00:00 值。编辑:我在问题屏幕截图中添加了我的专栏现在的样子。
  • 如果应该是 00:00 那么有什么问题呢?
猜你喜欢
  • 2015-02-27
  • 1970-01-01
  • 2013-08-24
  • 2016-05-15
  • 2017-05-18
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
相关资源
最近更新 更多