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

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

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

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

Ответы на вопрос(2)

Решение Вопроса

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

 alexx018623 мая 2012 г., 02:44
Привет, спасибо за ваш ответ. Я буду использовать это без беспокойства. С уважением

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

Например:

select id from user_table where email = '[email protected]' limit 1;
 23 мая 2012 г., 02:46
Да, нет проблем. Я тоже узнал что-то новое.
 alexx018623 мая 2012 г., 02:45
Привет, я хотел использовать lastInsertId (), но я буду помнить ваш совет. Большое спасибо.

Ваш ответ на вопрос