由2个用户同时更新mysql表数据

时间:2018-10-31 10:58:12

标签: php android mysql

我正在使用php作为服务器端的在线游戏android应用程序。 现在我被困在一个地方。

我希望2个用户都在线并且连接到同一个游戏时将玩一个游戏,连接后我要调用一个php url,该URL将根据他们在单个表中更新两个用户的开始时间emailids,下面在我的php代码中用于执行此操作-

$stmt = $conn->prepare("update user_game_status 
                        set game_score=?,time=? 
                        where emailid=? 
                        and game_id=? 
                        and gstatus=1 
                        and gplay_code=?");

$stmt->bind_param("sssss", $game_score,$time,$email,$game_id,$gplay_code);
$stmt->execute();

$rows=mysqli_affected_rows($conn);
$stmt->close();

但是我面临的问题是,仅为1个用户更新时间,这意味着谁首先进入了游​​戏,他的时间就会更新,但是加入他的时间的第二个用户却不会更新。会同时为两个用户调用该网址。

谁能告诉我我所缺少的道路。谢谢

1 个答案:

答案 0 :(得分:0)

user_game_status表的外观如何?

您可以对datetimetimestamp使用自动更新,因此不必在查询中包括自动更新。如果有人更改了该行,时间将自动更新。更多信息:https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html

示例:

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);