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

8

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

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

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

Ваш Ответ

2   ответа
10

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

Привет, спасибо за ваш ответ. Я буду использовать это без беспокойства. С уважением alexx0186
1

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

Например:

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

Похожие вопросы