Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом

# mysqli::$insert_id

# mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_id — Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом

### Описание

Объектно-ориентированный стиль

int|string $mysqli->insert_id;

Процедурный стиль

function mysqli_insert_id(mysqli `$mysql`): int|string

Возвращает идентификатор, сгенерированный запросом `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.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open