leni_m
@leni_m
ЧупаКобрус

Как правильно достать id вставленной строки в бд?

Меня интересуют фукнции php.net/manual/ru/pdo.lastinsertid.php и
php.net/manual/ru/mysqli.insert-id.php.
Вот например есть скрипт:
$db->query("INSERT ...");
$id = $db->lastInsertId();

и он запускается "одновременно" с двух машин, то может быть такая ситуация, что сервер инсертит строку с первой машины, потом инсертит строку со второй машины, и уже первой машине возвращает не тот id?
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
lastInsertId (ака LAST_INSERT_ID функция mysql) безопасен для конкурентного доступа, возвращает сгенерированное значение auto increment для предшествующего запроса именно в этом соединении.

Поэтому если вы в одном соединении делаете insert, то последующий lastInsertId через это соединение гарантированно вернёт корректное значение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы