Ottenere l'ID dell'ultimo record inserito

PHP interfaccia l'API di MySQL last_insert_id() per ritornare l'indice associato ad un campo AUTO_INCREMENT del record che abbiamo appena inserito, la funzione che lo permette è mysql_inserted_id($link).

In pratica capita spesso di dover inserire in una tabella un record di definizione di una insieme di oggetti che verranno inseriti in un'altra tabella, ad esempio una nuova categoria di prodotti ed un elenco di prodotti legati alla nuova categoria.
Per fare questo in un'unica pagina diventa necessario conoscere l'ultimo valore che è stato generato da MySQL nel campo AUTO_INCREMENT della tabelle, consideriamo questo semplice esempio in cui supponiamo di ricevere in input la descrizione di una nuova categoria e di un prodotto ad essa associato, in pratica il risultato di una print_r dei valori che ci arrivano in POST sia qualcosa del tipo
Array
(
    [desc_cat] => 'cibi'
    [desc_prod] => 'pasta'
)

Possiamo inserire la nuova categoria e associarvi i nuovi prodotti direttamente in un unica pagina, tramite codice del tipo
$sql = "INSERT INTO categoria (id, descrizione) VALUES (NULL, '".$_POST['descrizione']."')"; // sia id di tipo AUTO_INCREMENT
$result = mysql_query ($sql);
$new_id_cat = mysql_inserted_id();

$sql = "INSERT INTO prodotto (id, id_categoria, descrizione) VALUES (NULL, '$new_id_cat', '".$_POST['descrizione']."')"; // sia id di tipo AUTO_INCREMENT
$result = mysql_query ($sql);

Privacy Policy