Я размещаю несколько серверов для многопользовательских игр, и мне нужна помощь в создании PHP-скрипта MySQL. Я создал скрипты для игровых серверов, которые выводят несколько переменных в php-скрипт. Эти переменные включают имя игрока, номер GUID (идентификатор пользователя игры) и пару других несущественных вещей. Они отправляются в php-скрипт каждый раз, когда игрок присоединяется к серверу.MYSQL: Сохранение различных экземпляров игроков
В любом случае, что мне в основном нужно, это каждый раз, когда игрок присоединяется к серверу, он сохраняет имя игрока, определяет и присоединяет дату/временную метку к строке в таблице MySQL. У игрока всегда будет только один GUID-код, который похож на их cd-ключ. Что у меня в настоящее время:
if ($action == "save")
{
$name = mysql_real_escape_string($_GET['name']);
$guid = mysql_real_escape_string($_GET['guid']);
}
mysql_query("INSERT INTO `players` (`name`, `guid`) VALUES ('$name', '$guid') ON DUPLICATE KEY UPDATE `last_joined`=CURRENT_TIMESTAMP")or die(mysql_error());
echo "-10";
die();
Теперь это прекрасно работает. Но мне нужно, чтобы это было; если игрок приходит на сервер с другим именем, он будет записывать этот экземпляр в новую строку, и если они появятся снова с тем же именем, он обновит ту же строку с текущей меткой времени. И, например, если они меняют свое имя на имя, которое они используют, оно обновляет строку, которая имеет это имя, записанное с текущей меткой времени.
Единственное, что я пробовал, это сделать столбец «имя», первичный ключ и дубликат записи, который он обновит. Однако, если бы я сделал это, а другой игрок появился на сервере с тем же именем, он просто обновил данные последнего игрока.
Для этого необходимо записать каждое имя пользователя, которое использует игрок.
Существует, вероятно, довольно простое решение, но у меня никогда не было времени, чтобы научиться MySQL, и мне нужно это сделать в ближайшее время.
Спасибо за любую помощь.
Просто FYI, GUID имеет определенное значение в РСУБД, что некоторые могут найти смущение. – Strawberry
Ah хорошо, ну в этом случае для всех, кто задается вопросом, что GUID - это всего лишь 5-значный или более уникальный идентификатор. – Wolfgang
Итак, просто см. INSERT ... ON DUPLICATE KEY UPDATE Синтаксис – Strawberry