(PHP 5, PHP 7, PHP 8)
mysqli::$insert_id -- mysqli_insert_id — Liefert den Wert, der bei der letzten Anweisung für die AUTO_INCREMENT-Spalte erzeugt wurde
Objektorientierter Stil
Prozeduraler Stil
Gibt die ID zurück, die durch eine INSERT
- oder UPDATE
-Anweisung für eine Tabelle mit einer Spalte mit dem Attribut AUTO_INCREMENT
erzeugt wurde. Im Fall einer INSERT
-Anweisung für mehrere Zeilen, wird der erste automatisch erzeugte Wert zurückgegeben, der erfolgreich eingefügt wurde.
Wenn eine INSERT
- oder UPDATE
-Anweisung mit der MySQL-Funktion LAST_INSERT_ID()
ausgeführt wird, wird auch der von mysqli_insert_id() zurückgegebene Wert geändert. Wenn LAST_INSERT_ID(expr)
verwendet wurde, um den Wert von AUTO_INCREMENT
zu erzeugen, wird der Wert des letzten Ausdrucks expr
anstelle des erzeugten AUTO_INCREMENT
-Werts zurückgegeben.
Gibt 0
zurück, wenn die vorherige Anweisung einen AUTO_INCREMENT
-Wert nicht verändert hat. mysqli_insert_id() muss unmittelbar nach der Anweisung aufgerufen werden, die den Wert erzeugt hat.
mysql
Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.
Gibt den Wert der AUTO_INCREMENT
-Spalte zurück, die durch die vorherige Anweisung aktualisiert wurde. Gibt Null zurück, wenn es keine vorherige Anweisung für die Verbindung gab oder wenn die Anweisung keinen AUTO_INCREMENT
-Wert aktualisiert hat.
Nur Anweisungen, die über die aktuelle Verbindung gesendet werden, beeinflussen den Rückgabewert. Der Wert wird nicht von Anweisungen beeinflusst, die über andere Verbindungen oder Clients ausgegeben werden.
Hinweis:
Wenn die Zahl größer ist als der maximale int-Wert, wird sie als Zeichenkette zurückgegeben.
Beispiel #1 $mysqli->insert_id-Beispiel
Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("CREATE TABLE myCity LIKE City");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);
printf("Der neue Datensatz hat die ID %d.\n", $mysqli->insert_id);
$mysqli->query("DROP TABLE myCity");
Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
mysqli_query($link, "CREATE TABLE myCity LIKE City");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);
printf("Der neue Datensatz hat die ID %d.\n", mysqli_insert_id($link));
mysqli_query($link, "DROP TABLE myCity");
Die obigen Bespiele erzeugen folgende Ausgabe:
Der neue Datensatz hat die ID 1.