Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta

# mysqli::$insert_id

# mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_id — Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta

### Descrição

Estilo orientado a objetos

int|string $mysqli->insert_id;

Estilo procedural

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

Retorna o ID gerado por uma consulta `INSERT` ou `UPDATE` em uma tabela que tenha o atributo `AUTO_INCREMENT`. No caso de uma declaração `INSERT` de múltiplas linhas, ela retorna o primeiro valor gerado automaticamente que foi inserido com sucesso.

Realizar uma declaração `INSERT` ou `UPDATE` usando a função MYSQL `LAST_INSERT_ID()` também irá modificar o valor retornado por mysqli_insert_id(). Se `LAST_INSERT_ID(expr)` foi usado para gerar o valor de `AUTO_INCREMENT`, ela retorna o valor da última `expr` no lugar do valor `AUTO_INCREMENT` gerado.

Retorna `0` se a declaração anterior não modificou um valor `AUTO_INCREMENT`. mysqli_insert_id() deve ser chamada imediatamente após a declaração que gerou o valor.

### Parâmetros

`mysql`
  Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

### Valor Retornado

O valor do campo `AUTO_INCREMENT` que foi atualizado pela consulta anterior. Retorna zero se não houve consulta anterior na conexão ou se a consulta não atualizou um valor `AUTO_INCREMENT`.

Apenas declarações emitidas com a conexão atual afetam o valor de retorno. O valor não é afetado por declarações emitidas usando outras conexões ou clientes.

> Nota:

> Se o número é maior que o máximo valor de um inteiro, ele será retornado como uma string.

### Exemplos

Exemplo #1 Exemplo de $mysqli->insert_id

Estilo orientado a objetos

    <?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("Novo registro tem ID %d.\n", $mysqli->insert_id);

    /* deleta a tabela */
    $mysqli->query("DROP TABLE myCity");

Estilo procedural

    <?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("Novo registro tem ID %d.\n", mysqli_insert_id($link));

    /* deleta a tabela */
    mysqli_query($link, "DROP TABLE myCity");

Os exemplos acima produzirão:

    Novo registro tem ID 1.

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