【发布时间】:2020-07-20 09:17:41
【问题描述】:
我尝试在数据库中插入具有唯一 ID 的播放器。 这个模型对我有用,但如果我给它一个密钥更新,它会在我的数据库中复制它。
选项 1
$id = uniqid();
$insert_player_query = mysqli_query($db,"INSERT INTO players (id,nickname,score,time_online,mapname,sid) VALUES ('$id','$player_nickname','$player_score','$player_time','$mapname','$server_id') ON DUPLICATE KEY UPDATE score = score + VALUES(score), time_online = time_online + VALUES(time_online) WHERE id='$id'");
选项 2
然后我尝试了,但它根本没有插入任何东西
$id = uniqid();
$sql=mysqli_query($db, "SELECT * FROM players WHERE nickname='$player_nickname'");
if (mysqli_num_rows($sql) > 0)
{
$insert_player_query2 = mysqli_query($db,"UPDATE players (nickname,score,time_online,mapname,sid) VALUES ($player_nickname','$player_score','$player_time','$mapname','$server_id') WHERE id='$id'");
} else {
$insert_player_query = mysqli_query($db,"INSERT INTO players (id,nickname,score,time_online,mapname,sid) VALUES ('$id','$player_nickname','$player_score','$player_time','$mapname','$server_id') WHERE id='$id'");
}
【问题讨论】:
-
uniqueid()生成一个字符串。当您的 ID 字段为数字时,它将不起作用。 -
在这种情况下该怎么办?
-
如果您的唯一 ID 始终具有相同的长度,则将 ID 字段设为具有固定长度的 varchar 或 char。
-
我忘了指定,我在数据库中做了这个。
id varchar (200)但是还是不行。 -
这个查询正确吗? "mysqli_query($db,"INSERT INTO 玩家 (id,nickname,score,time_online,mapname,sid) VALUES ('$id','$player_nickname','$player_score','$player_time','$mapname', '$server_id') WHERE id='$id'");"在我看来,从最后开始的位置是错误的
标签: php mysql sql mysqli gamequery