# mysqli::$insert_id

# mysqli_insert_id

(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

### Beschreibung

Objektorientierter Stil

int|string $mysqli->insert_id;

Prozeduraler Stil

mysqli_insert_id(mysqli `$mysql`): int|string

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.

### Parameter-Liste

`mysql`

  Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.

### Rückgabewerte

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.

### Beispiele

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.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open