Intereting Posts

Как я могу убедиться, что lastInsertId () не относится к другой одновременной вставке?

Я делаю регистрационную форму с SQL-запросом INSERT с использованием PDO. После этого INSERT я хочу извлечь только что созданный userid (auto incremental, primary key) и вставить его в другую таблицу (таблица «код подтверждения»)

Но как я могу убедиться, что этот идентификатор пользователя не принадлежит второму пользователю, который зарегистрировал 1 / 1000th секунды позже, чем первый пользователь?

Должен ли я найти способ блокировки стола? Должен ли я использовать транзакции?

Большое спасибо за вашу помощь.

lastInsertId() возвращает идентификатор последней строки, вставленной в это соединение , поэтому одновременные пользователи (с разными подключениями к базе данных) не будут мешать.

Вы можете избежать этого, выполнив выбор по электронной почте или в каком-то уникальном поле. Это гарантирует, что вы получите правильный идентификатор пользователя.

Например:

 select id from user_table where email = 'user@email.com' limit 1;