gpt4 book ai didi

php - 检查用户是否在数据库中

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:14 24 4
gpt4 key购买 nike

我用 Javascript 开发了一个游戏,当用户完成游戏时,我必须将他的记录保存在数据库中。在这里你可以看到代码:

$temp = $_POST['playername'];             //username
$text = file_get_contents('names.txt'); //list with all usernames

//this text file contains the names of the players that sent a record.

$con=mysqli_connect("localhost","username","pass","my_mk7vrlist");

if (stripos(strtolower($text), strtolower($temp)) !== false) {
//if the username is in the list, don't create a new record but edit the correct one

mysqli_query($con, "UPDATE `my_mk7vrlist`.`mk7game` SET `record` = '".$_POST['dadate']."' WHERE `mk7game`.`playername` = ".$temp." LIMIT 1 ");

} else {

//The username is not in the list, so this is a new user --> add him in the database
mysqli_query($con, "INSERT INTO `mk7game` (`playername`,`record`,`country`,`timen`) VALUES ('".$_POST['playername']."', '".$_POST['dadate']."', '".$_POST['country']."', '".$_POST['time_e']."')");

file_put_contents("names.txt",$text."\n".$temp);
//update the list with this new name
}

//Close connection
mysqli_close($con);

当我有一个新用户(我的“else”中的部分)时,代码可以正常工作,因为我的数据库中有一个新行。

当用户名已经存在于列表中时,意味着这个玩家已经发送了他的记录,所以我必须更新表。顺便说一句,我无法在已经发送记录的播放器上编辑记录。

mysqli_query($con, "UPDATE `my_mk7vrlist`.`mk7game` SET `record` = '".$_POST['dadate']."' WHERE `mk7game`.`playername` = ".$temp." LIMIT 1 ");

看起来这是错误的,我不明白为什么。我对 PHP 和 MySQL 还很陌生。

你有什么建议吗?

最佳答案

您在 UPDATE 语句中缺少围绕 $temp 的引号:

mysqli_query($con, "UPDATE `my_mk7vrlist`.`mk7game` 
SET `record` = '".$_POST['dadate']."'
WHERE `mk7game`.`playername` = '".$temp."'
^ ^
LIMIT 1 ") or die(mysqli_error($con));

但是,最好使用带参数的准备好的语句,而不是将字符串插入查询。

关于php - 检查用户是否在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21994446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com