Hi,
Ihr wollt wissen welche Primäschlüssel als letztes in die Datenbank einetragen wurde?
Klar, man kann das mit einem Sub-Select und der max(id) machen, doch was passiert, wenn fast gleichzeitig ein neuer Datensatz angelegt wird?
LÖSUNG: $conn->insert_id
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Datenbankverbindung herstellen
$conn = new mysqli($servername, $username, $password, $dbname);
//Verbindung prüfen
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Person(Vorname, Nachname, Email)
VALUES ('Peter', 'Pullwitt', 'werbung@pullwitt.de')";
if ($conn->query($sql) === TRUE) {
// und hier wird der Primäschlüssel zurückgegeben.
$last_id = $conn->insert_id;
echo "Neuer Datensatz wurde mit der letzten ID angelegt: " . $last_id;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>