Только что столкнулся со следующей ситуацией
Есть файл post.php
, который включает в себя другой файл (например, insert.php
).
Весь код для вставки в MySQL находится в insert.php
В insert.php
есть код $id_of_inserted_row = $db->lastInsertId();
Тогда в insert.php
есть echo $id_of_inserted_row;
, который показываетправильное значение.
Но echo $id_of_inserted_row;
в post.php
показывает неверное значение (как я вижу, показывает на 7 цифр меньше фактического значения).Я не понимаю почему, просто нужно принять во внимание.
Обновление
Извините, выше написано было потому, что вставили в две таблицы и по ошибке использовали одинаковые $id_of_inserted_row = $db->lastInsertId();
для обеих таблиц.
Итак, у меня такой же вывод, как и в других ответах: lastInsertId()
получает идентификатор последней вставленной строки.
Столкнулся с ситуацией.Я вставил 2 строки в MySQL.В таком случае я вижу, что lastInsertId () является идентификатором первой вставленной строки (не последней).Не понимаю, почему ... Найденный ответ https://stackoverflow.com/a/12574752/2118559
Внимание! Если вы вставляете несколько строк с помощью одного оператора INSERT, LAST_INSERT_ID () возвращает значение, созданное только для первой вставленной строки.Причина этого в том, чтобы можно было легко воспроизвести ту же инструкцию INSERT для другого сервера.