(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);
/* Tabelle löschen */
$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));
/* Tabelle löschen */
mysqli_query($link, "DROP TABLE myCity");
Die obigen Bespiele erzeugen folgende Ausgabe:
Der neue Datensatz hat die ID 1.