English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen Sie, wie Sie mit PHP den eindeutigen ID der letzten eingefügten Zeile aus einer MySQL-Datenbanktabelle abrufen.
In " PHP MySQL EinfügenKapitel bereits kennengelernt haben. AUTO_INCREMENT generiert jedes Mal, wenn ein neues Record oder eine neue Zeile in die Tabelle eingefügt wird, eine eindeutige ID automatisch. In einigen Fällen benötigen Sie jedoch eine automatisch generierte ID, um sie in eine zweite Tabelle einzufügen. In solchen Fällen können Sie die PHP-Funktion mysqli_insert_id() verwenden, um die kürzlich generierte ID abzurufen, wie im folgenden Beispiel gezeigt.
In diesem Beispiel werden wir das verwenden, das Sie imPHP MySQL Tabellen erstellenim selben Kapitel erstelltPersönlichTabelle, die vier Spalten hatid,first_name,last_nameundemail, wobeiidist die Primärschlüsselspalte und ist mit dem AUTO_INCREMENT-Tag markiert.
<?php /* Versuchen, eine Verbindung zum MySQL-Server herzustellen. Vorausgesetzt, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort)*/ $link = mysqli_connect("localhost", "root", "", "demo"); //Verbindung überprüfen if($link === false){ die("Fehler: Verbindungsfehler. ". mysqli_connect_error()); } //Versuchen, die Einfügeabfrage auszuführen $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')"; if(mysqli_query($link, ''Sql'')){ //Letzte eingefügte ID erhalten $last_id = mysqli_insert_id($link); echo "Erfolgreiches Einfügen eines Eintrags. Die letzte eingefügte ID ist: " . $last_id; } else{ echo "Fehler: Das Ausführen von $sql . . mysqli_error($link); } //Verbindung schließen mysqli_close($link); ?>
<?php /* Versuchen, eine Verbindung zum MySQL-Server herzustellen. Vorausgesetzt, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort)*/ $mysqli = new mysqli("localhost", "root", "", "demo"); //Verbindung überprüfen if($mysqli === false){ die("Fehler: Verbindungsfehler. . $mysqli->connect_error); } // Versuchen, die Einfügeabfrage auszuführen $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')"; if($mysqli->query($sql) === true){ //Letzte eingefügte ID erhalten $last_id = $mysqli->insert_id; echo "Erfolgreiches Einfügen eines Eintrags. Die letzte eingefügte ID ist: " . $last_id; } else{ echo "Fehler: Das Ausführen von $sql . . $mysqli->error; } //Verbindung schließen $mysqli->close(); ?>
<?php /* Versuchen, eine Verbindung zum MySQL-Server herzustellen. Vorausgesetzt, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort)*/ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //PDO-Fehlermodus auf Ausnahme setzen $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("Fehler: Verbindungsfehler. . $e->getMessage()); } //Versuchen, die Einfügeabfrage auszuführen try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')"; $pdo->exec($sql); $last_id = $pdo->lastInsertId(); echo "Erfolgreiches Einfügen eines Eintrags. Die letzte eingefügte ID ist: " . $last_id; } catch(PDOException $e){ die("Fehler: Das Ausführen von $sql . . $e->getMessage()); } //Verbindung schließen unset($pdo); ?>