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 через это соединение гарантированно вернёт корректное значение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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