PHP MySQL Database
§ 6. MySQL Get LastID
Dopo aver eseguito un INSERT o un UPDATE in una tabella con un campo AUTO_INCREMENT, possiamo ottenere l'ID dell'ultimo record inserito o aggiornato.
nelle tabelle MyGuest_1, MyGuest_2, e MyGuest_3, la colonna "id" è un campo AUTO_INCREMENT. :
§ 6.1 Ottenere l'ultimo record inserito nelle tabelle MySQL usando MySQLi e PDO
Gli esempi che seguono sono identici a quelli della sezione precedente con la sola aggiunta di una linea di codice per recuperare l'ID dell'ultimo record inserito e visualizzarlo
§ 6.1.1 Ottenere l'ultimo record inserito in MyGuest_1 con MySQLi object-oriented
<?php
$servername = "127.0.0.1";
$username = "mioUserName";
$password = "miaPassword";
$dbname = "myDB";
$sql = "INSERT INTO MyGuest_1(
firstname, lastname, email)
VALUES('Giorgio', 'Neri', 'giorgioBlack@pip.com')";
// Create connection
$conn = new mysqli($servername, $username,
$password, $dbname);
// Check connection
if ($conn->connect_error){
die("Connection failed: " . $conn-> connect_error);
}
echo "<p class=phpoutput> Connessione mysqli object-oriented riuscita. </p>;
// create new record
if ($conn->query($sql)==TRUE){
echo "<p class=phpoutput > Nuovo record creato con successo </p>";
$last_id = $conn->insert_id;
echo "<p class=phpoutput > Last inserted ID is: " . $last_id . "</p>";
} else {
echo "<p class=phpoutput >
Errore nella creazione del nuovo record: "
. $conn->error . "</p>";
}
$conn->close();
?>
Connessione mysqli object-oriented riuscita.
Nuovo record creato con successo
Last inserted ID is: 8581
La tabella MyGuest_1 l'ho inserita nel mio unico database disponile. Naturalmente nel codice php che ? stato eseguito ho sostituito "mioUserName", "miaPassword", e "myDB" con i valori propri del mio database.
§ 6.1.2 Ottenere l'ultimo record inserito in MyGuest_2 con MySQLi procedural
<?php
$servername = "127.0.0.1";
$username = "mioUserName";
$password = "miaPassword";
$dbname = "myDB";
$sql = "INSERT INTO MyGuest_2(
firstname, lastname, email)
VALUES('Roberto', 'Rossi', 'robertoRed@pip.com')";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn){
die("Connection failed: " . mysqli_connect_error);
}
echo "<p class=phpoutput> Connessione mysqli procedural riuscita. </p>;
// Create new record
if (mysqli_query($conn, $sql)) {
echo "<p class=phpoutput > Nuovo record creato con successo</p>";
$last_id = mysqli_insert_id($conn);
echo "<p class=phpoutput > Last inserted ID is: " . $last_id . "</p>";
} else {
echo "<p class=phpoutput >
Errore nella creazione del nuovo record: "
. mysqli_error($conn) . "</p>";
}
mysqli_close($conn);
?>
Connessione mysqli procedural riuscita
Nuovo record creato con successo
Last inserted ID is: 4
La tabella MyGuest_2 l'ho inserita nel mio unico database disponile. Naturalmente nel codice php che ? stato eseguito ho sostituito "mioUserName", "miaPassword", e "myDB" con i valori propri del mio database.
§ 6.1.2 Ottenere l'ultimo record inserito in MyGuest_3 con PDO
<?php
$servername = "127.0.0.1";
$username = "mioUserName";
$password = "miaPassword";
$conn = null;
$dbname = "myDB";
$sql = "INSERT INTO MyGuest_3(
firstname, lastname, email)
VALUES('Filippo', 'Verdi', 'filippoGreen@pip.com')";
try{
$conn = new PDO("mysql:host=$servername; dbname=$dbname",
$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "<p class=phpoutput> Connessione pdo riuscita. </p>";
// use exec() because no results are returned
$conn->exec($sql);
echo "<p class=phpoutput > Tabella myGuest_3 creata con successo</p>";
$last_id = $conn->lastInsertId();
echo "<p class=phpoutput > Last inserted ID is: " . $last_id . "</p>";
}
catch(PDOException $e){
echo "<p class=phpoutput >". $sql. "</p>";
echo "<p class=phpoutput >". $e->getMessage(). "</p>";
}
if ($conn != null){
$conn = null;
}
?>
Connessione pdo riuscita
Record creato con successo
Last inserted ID is: 4
La tabella MyGuest_3 l'ho inserita nel mio unico database disponile. Naturalmente nel codice php che ? stato eseguito ho sostituito "mioUserName", "miaPassword", e "myDB" con i valori propri del mio database.