English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai come utilizzare PHP per recuperare l'ID unico dell'ultima riga inserita in un tavolo del database MySQL.
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.
<?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); ?>
<?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(); ?>
<?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); ?>