$update_list = "";
foreach($keys as $k)
{
if(!isset($_GET[$k]) || empty($_GET[$k]))
{
exit("error");
}
$update_list .= ($k != "username") ? "{$k}={$_GET[$k]},":"";
}
$update_list = substr($update_list, 0, -1);
$con = new PDO("mysql:host=localhost;port=3306;dbname=highscores", "root", "");
$row_list = implode(",", $keys);
$question_marks = substr(str_repeat("?,", sizeof($keys)), 0, -1);
$query = "INSERT INTO `highscores` ({$row_list}) VALUES ({$question_marks}) ON DUPLICATE KEY UPDATE {$update_list}";
当我注销时,它会将另一个具有相同名称的用户名添加到列表中。 我不想要的是,当用户注销时,它将更新统计信息,而不是在列表中创建具有更新统计信息的相同用户名。 这里出了什么问题。
MVG。
最佳答案
SQL 查询不应该 INSERT INTO 但 UPDATE 尝试编写如下内容:
$query = "UPDATE `highscores`SET({$question_marks}) WHERE username=usernameToUpdate";
将“usernameToUpdate”替换为与您要更改的“highscore”相关的用户名。使用“userId”代替用户名可能更好,但两种方式都可以,
关于php - 更新数据库,不再在列表中添加相同的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36756754/