English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como usar PHP para recuperar o ID único da última linha inserida em uma tabela do banco de dados MySQL.
Em " PHP MySQL inserirNeste capítulo, você já aprendeu que o AUTO_INCREMENT gera automaticamente um ID único a cada vez que uma nova linha é inserida na tabela. Mas, em algumas situações, você precisa que este ID seja gerado automaticamente para ser inserido em uma segunda tabela. Nesses casos, você pode usar a função PHP mysqli_insert_id() para recuperar o último ID gerado, conforme o exemplo a seguir.
Neste exemplo, usaremos o que aprendemos noPHP MySQL criar tabelamesmo capítulo onde foi criadopessoaltabela, que possui quatro colunasid,first_name,last_nameeemail, ondeidé a coluna primária e está marcada com o sinal AUTO_INCREMENT.
<?php /* Tente conectar ao servidor MySQL. Suponha que você esteja executando MySQL. Servidor com configurações padrão (usuário sem senha "root")*/ $link = mysqli_connect("localhost", "root", "", "demo"); //Verificar conexão if ($link === false) { die("Erro: Não foi possível conectar. " . mysqli_connect_error()); } //Tente executar a consulta de inserção $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')"; if (mysqli_query($link, ''$sql'')) { //Obter o último ID inserido $last_id = mysqli_insert_id($link); echo "Registo inserido com sucesso. O último ID inserido é: ". $last_id; } else{ echo "Erro: Não foi possível executar $sql. ". mysqli_error($link); } //Fechar conexão mysqli_close($link); ?>
<?php /* Tente conectar ao servidor MySQL. Suponha que você esteja executando MySQL. Servidor com configurações padrão (usuário sem senha "root")*/ $mysqli = new mysqli("localhost", "root", "", "demo"); //Verificar conexão if($mysqli === false){ die("Erro: Não foi possível conectar. ". $mysqli->connect_error); } // Tente executar a consulta de inserção $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')"; if($mysqli->query($sql) === true){ //Obter o último ID inserido $last_id = $mysqli->insert_id; echo "Registo inserido com sucesso. O último ID inserido é: ". $last_id; } else{ echo "Erro: Não foi possível executar $sql. ". $mysqli->error; } //Fechar conexão $mysqli->close(); ?>
<?php /* Tente conectar ao servidor MySQL. Suponha que você esteja executando MySQL. Servidor com configurações padrão (usuário sem senha "root")*/ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //Definir o modo de erro PDO como exceção $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("Erro: Não foi possível conectar. ". $e->getMessage()); } //Tente executar a consulta de inserção try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')"; $pdo->exec($sql); $last_id = $pdo->lastInsertId(); echo "Registo inserido com sucesso. O último ID inserido é: ". $last_id; } catch(PDOException $e){ die("Erro: Não foi possível executar $sql. ". $e->getMessage()); } //Fechar conexão unset($pdo); ?>