У меня есть эта строка кодов php для обновления счета моих игроков или создания новой записи для них.используйте метод post, чтобы получить имя и счет игрока, а затем обновить их.Я использую его для обновления баллов, потому что я не хочу иметь одно имя с несколькими баллами на моей доске. И ЭТОТ КОДЕКС РАБОТАЕТ ДЛЯ СПОСОБА И ПОСЛЕДОВАТЕЛЬНОСТИ ПОСЛЕДОВАТЕЛЬНОСТИ UNITY HTML
$sql = "REPLACE INTO scores (name, score)
VALUES ('$name', '$score')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql2 = "DELETE FROM scores WHERE score < '".$score."' AND name = '".$name."'";
if ($conn->query($sql2) === TRUE) {
echo "Record Corrected";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
, и я использую этот код в единстве, чтобы отправить имя и счет с помощью метода записи.
IEnumerator Upload()
{
WWWForm form = new WWWForm();
form.AddField("name", PlayerPrefsManager.GetPlayerName().ToString());
form.AddField("score", PlayerPrefsManager.GetPlayerBestScore().ToString());
using (UnityWebRequest www = UnityWebRequest.Post("http://gabrielexception.ir/addscore.php", form))
{
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
}
}
}
Проблема в том, что в некоторых случаях (возможно, 20% телефонов) имя не обновляется, просто создается новая запись для одного и того же имени Over и Over.если игрок получил 50 новых записей, он просто создает 50 записей.Как этот код может работать на 100% правильно в некоторых телефонах и на 50% правильно в других!