English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundlagen教程

PHP Fortgeschrittene教程

PHP & MySQL

PHP Referenzhandbuch

PHP-MySQL-zuletzt eingefügte ID

In diesem Tutorial lernen Sie, wie Sie mit PHP den eindeutigen ID der letzten eingefügten Zeile aus einer MySQL-Datenbanktabelle abrufen.

Wie bekomme ich die ID der letzten eingefügten Zeile

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.

Beispiel: Prozeduraler Ansatz

<?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);
?>

Beispiel: Objektorientierte Methode

<?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();
?>

Beispiel: PDO-Methode

<?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);
?>