PHP MySQL – Como obter o último ID inserido
Freqüentemente, é necessário recuperar o registro PHP MySQL Last Inserted ID em um banco de dados, ao inserir novos registros no banco de dados usando PHP.
Você pode utilizar este ID como referência em outras tabelas ou operações que fazem parte da aplicação para facilitar seu trabalho.
Ao longo deste artigo, exploraremos uma solução PHP para recuperar o último ID inserido em um banco de dados MySQL usando a extensão PDO para recuperar o ID desse banco de dados.
Também vamos destacar algumas práticas recomendadas que podem ser aplicadas ao trabalhar com geração e recuperação de ID em bancos de dados MySQL para evitar armadilhas comuns.
PHP MySQL último ID inserido
Uma operação INSERT ou UPDATE em uma tabela, que possui um campo AUTO_INCREMENT , nos permitirá obter o ID do último registro que foi inserido ou atualizado imediatamente após a realização da operação.
A coluna “ id ” na tabela “ Users ” é um campo que é um campo AUTO_INCREMENT.
CREATE TABLE Users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), age INT, gender VARCHAR(50), reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )
Como nos exemplos da página anterior (PHP Insert Data Into MySQL), os exemplos a seguir são idênticos aos da página anterior, exceto que adicionamos uma única linha de código para recuperar o ID do registro anterior que foi inserido.
Nosso código também ecoa o último ID inserido.
Abaixo está um exemplo usando o método Orientado a Objetos do MySQLi:
Example (MySQLi’s Object-Oriented):
Example (MySQLi’s Procedural):
Example (PDO):
Exemplo de Explicação
- O código começa definindo as variáveis $servername , $username , $password e $dbname , que são usadas para especificar os detalhes da conexão do banco de dados.
- Um bloco try-catch é usado para lidar com quaisquer exceções que possam ocorrer durante a conexão com o banco de dados e a execução da consulta. Dentro do bloco try, o construtor PDO é usado para criar uma nova conexão com o banco de dados. A string de conexão é criada combinando as variáveis servername, dbname, username e password.
- O método PDO::setAttribute() é chamado no objeto $conn para definir o modo de erro como ERRMODE_EXCEPTION , o que significa que o PDO lançará uma exceção se ocorrer um erro.
- Uma instrução SQL INSERT é definida na variável $sql . A instrução insere um novo registro na tabela “ Users ” com os valores ' Matt ' para primeiro nome, ' LeBlanc ' para sobrenome, ' [email protected] ' para email, 55 para idade e ' Masculino ' para gênero.
- O método $conn->exec() é chamado para executar a instrução INSERT . Como a instrução não retorna nenhum resultado, o método exec() é usado em vez de query() .
- O método $conn->lastInsertId() é chamado para recuperar o ID do último registro inserido.
- O ID é armazenado na variável $last_id .
- Se a instrução INSERT for executada com sucesso, a mensagem “Novo registro adicionado com sucesso. O último ID inserido é: ” é exibido junto com o valor de $last_id.
- Se uma exceção for capturada, o bloco catch é executado. O bloco catch exibe uma mensagem de erro que inclui a consulta SQL e a mensagem de erro retornada pelo PDO.
- Por fim, a variável $conn é definida como nula para fechar a conexão com o banco de dados .