mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_idLiefert den Wert, der bei der letzten Anweisung für die AUTO_INCREMENT-Spalte erzeugt wurde

Beschreibung

Objektorientierter Stil

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


$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.
To Top