mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

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

Descrição

Estilo orientado a objetos

Estilo procedural

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.

Note:

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

Exemplos

Example #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.