0

プレイヤーがプレイしている時間をカウントするタイマーであるフラッシュゲームを作成しています。ゲームオーバータイム変数が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();

アップデート

私の時間列がどのように見えるか、スクリーンショットを追加しました。これでよろしいですか?

ここに画像の説明を入力

4

2 に答える 2

0

timeフォーマットを使用して再試行する必要があります。

更新: mysql に時間文字列を整数として扱うように指示する修飾子を
使用していることに気付きました。代わりに 使用してください。i
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();
于 2013-05-10T16:25:29.537 に答える
0

時間のデータ型を確認する必要があります。

于 2013-05-10T16:28:25.087 に答える