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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 09:29
2500 руб./за проект
25 апр. 2024, в 09:27
4000 руб./за проект
25 апр. 2024, в 09:20
10000 руб./за проект