Задать вопрос
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?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
lastInsertId (ака LAST_INSERT_ID функция mysql) безопасен для конкурентного доступа, возвращает сгенерированное значение auto increment для предшествующего запроса именно в этом соединении.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽