- Баллы
- 66
- Имя в Minecraft
- Lingue
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
нетЯвляется ли в таблице столбец NAME ключом?
Сделай его таковым х)
Ок, попробуюСделай его таковым х)
не помоглоСделай его таковым х)
Я думал я вы*бнусь своими знаниями, а тут уже смотрю за меня этот вариант написали (ON DUPLICATE KEY UPDATE) 🙂И такое делается примерно так. "INSERT INTO users (user,time) VALUES (?,?) ON DUPLICATE KEY UPDATE time = ?;". колонка юзера должна быть единственным ключем.
не нужен получается больше вообще. Зачем тебе проверять есть ли игрок в БД, чтобы его добавить, когда MySQL всё сама за тебя проверит? Короче если будешь использовать все как есть сейчас, добавляй проверку player.hasPlayedBefore(). А если будешь использовать "ON DUPLICATE KEY ...", то можно и не делатьИ такое делается примерно так. "INSERT INTO users (user,time) VALUES (?,?) ON DUPLICATE KEY UPDATE time = ?;". колонка юзера должна быть единственным ключем.
Это просто был один из примеров юза. И hasPlayedBefore соснет после вайпа папки с игроками.Я думал я вы*бнусь своими знаниями, а тут уже смотрю за меня этот вариант написали (ON DUPLICATE KEY UPDATE) 🙂
А так, ТС, у тебя жестко все написано.
- Функция exists() благодаря предложенному варианту выше не нужна.
- Нет проверки игрока на .hasPlayedBefore() - что и возвращает boolean того, был ли игрок раньше на сервере. Без этой проверки ты выполняешь лишний запрос на поиск того же игрока в БД. И этот поиск игрока в БД с вариантом выше
не нужен получается больше вообще. Зачем тебе проверять есть ли игрок в БД, чтобы его добавить, когда MySQL всё сама за тебя проверит? Короче если будешь использовать все как есть сейчас, добавляй проверку player.hasPlayedBefore(). А если будешь использовать "ON DUPLICATE KEY ...", то можно и не делать- Куча разделенных запросов, когда их надо максимально объединять между собой. Один запрос на одну функцию. Так нельзя, это один из самых базовых принципов (простейших просто, которые надо обязательно знать) оптимизации при работе с БД
Знаю. Просто я не вижу смысла ее вайпать. Но если скомбинировать два этих способа, то будет вообще изящно: если папка с игроками будет удалена, просто сделается запрос (выше). А если игрок есть - запрос сэкономитсяИ hasPlayedBefore соснет после вайпа папки с игроками