Я делаю регистрационную форму с SQL-запросом INSERT с использованием PDO. После этого INSERT я хочу извлечь только что созданный userid
(auto incremental, primary key) и вставить его в другую таблицу (таблица «код подтверждения»)
Но как я могу убедиться, что этот идентификатор пользователя не принадлежит второму пользователю, который зарегистрировал 1 / 1000th секунды позже, чем первый пользователь?
Должен ли я найти способ блокировки стола? Должен ли я использовать транзакции?
Большое спасибо за вашу помощь.
lastInsertId()
возвращает идентификатор последней строки, вставленной в это соединение , поэтому одновременные пользователи (с разными подключениями к базе данных) не будут мешать.
Вы можете избежать этого, выполнив выбор по электронной почте или в каком-то уникальном поле. Это гарантирует, что вы получите правильный идентификатор пользователя.
Например:
select id from user_table where email = 'user@email.com' limit 1;