У меня есть система регистрации PHP / MySQL, которая ограничивает количество людей, которые могут что-то подписать.Итак, скажем, есть 5 доступных мест, и 4 из них уже заполнены.Теперь 2 разных пользователя, которые вошли в систему, отправляют форму в одно и то же время , которая выполняет запрос MySQL для добавления этого человека в список.
Упрощенно, логика PHP выглядит примерно так:
if($numberOfSpotsTaken < 5) {
//add user to list
}
else {
//don't add user to list
}
Теперь, поскольку оба пользователя отправляют запрос одновременно, когда код проверяет, сколько мест занято, для обоих будет меньше 5.В итоге происходит то, что оба запроса проходят, и 6 человек попадают в список, когда предполагается, что лимит составляет 5.
Как я могу предотвратить эту ситуацию, чтобы два (или более) пользователякто подает запрос одновременно, не может обойти ограничение количества людей, которые могут зарегистрироваться?