English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base PHP

Tutorial avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

Ultimo ID inserito MySQL

In questo tutorial, imparerai come utilizzare PHP per recuperare l'ID unico dell'ultima riga inserita in un tavolo del database MySQL.

Come ottenere l'ID dell'ultima riga inserita

In " Inserimento PHP MySQLIn questo capitolo, hai imparato che AUTO_INCREMENT genera automaticamente un ID unico ogni volta che si inserisce un nuovo record o riga nella tabella. Tuttavia, in alcuni casi, hai bisogno di questo ID automaticamente generato per inserirlo in un secondo tavolo. In questi casi, puoi utilizzare la funzione PHP mysqli_insert_id() per recuperare l'ID generato di recente, come nell'esempio seguente.

In questo esempio, utilizzeremo quello che hai imparato nelCreazione tabella PHP MySQLstesso capitolo in cui è stato creatopersonaletabella, che ha quattro colonneid,first_name,last_nameeemaildi cuiidè una colonna primaria e contrassegnata con l'indicatore AUTO_INCREMENT.

Esempio: metodo procedurale

<?php
/*Prova a connettersi al server MySQL. Supponiamo che tu stia eseguendo MySQL.
Server con impostazioni predefinite (utente senza password "root")*/
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Controlla la connessione
if($link === false){
    die("Errore: Impossibile connettersi. ". mysqli_connect_error());
}
 
//Prova ad eseguire la query di inserimento
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";
if(mysqli_query($link, $sql)){
    //Ottieni l'ID dell'ultimo inserimento
    $last_id = mysqli_insert_id($link);
    echo "Record inserito con successo. L'ID dell'ultimo inserimento è: " . $last_id;
} else{
    echo "Errore: Impossibile eseguire $sql. ". mysqli_error($link);}}
}
 
//Chiudi la connessione
mysqli_close($link);
?>

Esempio: metodo orientato agli oggetti

<?php
/*Prova a connettersi al server MySQL. Supponiamo che tu stia eseguendo MySQL.
Server con impostazioni predefinite (utente senza password "root")*/
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Controlla la connessione
if($mysqli === false){
    die("Errore: Impossibile connettersi. ". $mysqli->connect_error);
}
 
//Prova ad eseguire la query di inserimento
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";
if($mysqli->query($sql) === true){
    //Ottieni l'ID dell'ultimo inserimento
    $last_id = $mysqli->insert_id;
    echo "Record inserito con successo. L'ID dell'ultimo inserimento è: " . $last_id;
} else{
    echo "Errore: Impossibile eseguire $sql. ". $mysqli->error;
}
 
//Chiudi la connessione
$mysqli->close();
?>

Esempio: metodo PDO

<?php
/*Prova a connettersi al server MySQL. Supponiamo che tu stia eseguendo MySQL.
Server con impostazioni predefinite (utente senza password "root")*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //Imposta il modello di errore PDO su eccezione
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("Errore: Impossibile connettersi. ". $e->getMessage());
}
 
//Prova ad eseguire la query di inserimento
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";    
    $pdo->exec($sql);
    $last_id = $pdo->lastInsertId();
    echo "Record inserito con successo. L'ID dell'ultimo inserimento è: " . $last_id;
} catch(PDOException $e){
    die("Errore: Impossibile eseguire $sql. ". $e->getMessage());
}
 
//Chiudi la connessione
unset($pdo);
?>