gpt4 book ai didi

php - 我如何在我的数据库中插入或更新一个条目,如果更新我如何添加到现有值

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:04 25 4
gpt4 key购买 nike

我有一个数据库跟踪通过 JSON 传入的游戏记录。如果 ID 不存在,我只是想创建一个新记录,但如果它存在,我想更新值。因此,如果一个玩家之前有 10 次击杀,然后他们玩了另一场游戏并增加了 10 次击杀,我希望他们的总数根据他们的 ID 更新为 20 次击杀。我的代码是最好的方法吗?

<?php 

$con = mysqli_connect("localhost", "root", "","playerstats") or die('Could not connect: ' . mysqli_error());


error_log("You messed up!", 3, "my-errors.log");

//$raw_data = file_get_contents('php://input');
$raw_data = file_get_contents('test.json');

$data = json_decode($raw_data, true);

$SteamID = $data['SteamID'];
$Username = $data['Username'];
$Kills = $data['Kills'];
$Deaths = $data['Deaths'];
$Rank = $data['Rank'];

$sql = "INSERT INTO playerinfo(SteamID, Username, Kills, Deaths, Rank)
VALUES('$SteamID', '$Username', '$Kills', '$Deaths', '$Rank')
ON DUPLICATE KEY UPDATE Kills += $Kills, Deaths += $Deaths";

if(!mysqli_query($con,$sql))
{
die('Error : ' . mysqli_error($con));

}


?>

最佳答案

MySQL 没有+= 运算符,您必须使用column = column + value。此外,没有必要重复 $Kill$Deaths 变量,您可以在 ON DUPLICATE 中使用 VALUES(columnName) KEY UPDATE 子句引用本应插入该列的值。

 $sql = "INSERT INTO playerinfo(SteamID, Username, Kills, Deaths, Rank)
VALUES('$SteamID', '$Username', '$Kills', '$Deaths', '$Rank')
ON DUPLICATE KEY UPDATE
Kills = Kills + VALUES(Kills),
Deaths = Deaths + VALUES(Deaths)";

您还应该学习如何使用准备好的语句而不是将变量替换到查询中。

关于php - 我如何在我的数据库中插入或更新一个条目,如果更新我如何添加到现有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37309836/

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