(PHP 5, PHP 7, PHP 8)
mysqli::$insert_id -- mysqli_insert_id — Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом
Объектно-ориентированный стиль
Процедурный стиль
Возвращает идентификатор, сгенерированный запросом INSERT или
UPDATE для таблицы со столбцом,
имеющим атрибут AUTO_INCREMENT.
В случае многострочного оператора INSERT он возвращает первое автоматически сгенерированное значение,
которое было успешно добавлено.
Выполнение запроса INSERT или UPDATE с использованием MySQL-функции LAST_INSERT_ID() также изменит значение,
возвращаемое mysqli_insert_id().
Если LAST_INSERT_ID(expr) использовался для генерации значения AUTO_INCREMENT,
он возвращает значение последнего expr вместо сгенерированного значения AUTO_INCREMENT.
Возвращает 0, если предыдущий оператор не изменил значение AUTO_INCREMENT.
mysqli_insert_id() должен вызываться сразу после запроса, сгенерировавшего значение.
mysqlТолько для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().
Значение поля AUTO_INCREMENT, которое было
затронуто предыдущим запросом. Возвращает ноль, если предыдущий
запрос не затронул таблицы, содержащие поле AUTO_INCREMENT.
Только запросы, выданные с использованием текущего соединения, влияют на возвращаемое значение. На значение не влияют запросы, выданные с использованием других подключений или клиентов.
Замечание:
Если число больше максимального значения целого числа, функция вернёт строку.
Пример #1 Пример функции $mysqli->insert_id
Объектно-ориентированный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("CREATE TABLE myCity LIKE City");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);
printf("ID новой записи: %d.\n", $mysqli->insert_id);
/* удаление таблицы */
$mysqli->query("DROP TABLE myCity");Процедурный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
mysqli_query($link, "CREATE TABLE myCity LIKE City");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);
printf("ID новой записи: %d.\n", mysqli_insert_id($link));
/* удаление таблицы */
mysqli_query($link, "DROP TABLE myCity");Результат выполнения приведённых примеров:
ID новой записи: 1.