(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.