(PHP 4, PHP 5)
mysql_insert_id — Liefert die ID, die in der vorherigen Abfrage erzeugt wurde
Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen bietet der Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:
Gibt die ID zurück, die für eine AUTO_INCREMENT-Spalte durch die vorherige Abfrage (meist INSERT) erzeugt wurde.
link_identifier
Die MySQL-Verbindung.
Wird die Verbindungskennung nicht angegeben, wird die letzte durch
mysql_connect() geöffnete Verbindung angenommen. Falls
keine solche Verbindung gefunden wird, wird versucht, eine Verbindung
aufzubauen, wie es beim Aufruf von mysql_connect() ohne
Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden
oder aufgebaut werden kann, wird eine Warnung der Stufe
E_WARNING
erzeugt.
Gibt bei Erfolg die ID zurück, die durch die vorherige Abfrage für eine
AUTO_INCREMENT-Spalte erzeugt wurde, 0
, falls die
vorherige Abfrage keinen AUTO_INCREMENT Wert erzeugt hatte, oder false
,
falls keine MySQL-Verbindung existierte.
Beispiel #1 mysql_insert_id()-Beispiel
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Der letze eingefügte Datensatz hat die ID %d\n", mysql_insert_id());
?>
mysql_insert_id() konvertiert den Typ der Rückgabe der
nativen MySQL C API-Funktion mysql_insert_id()
in den
Typ long
(in PHP als int bezeichnet).
Falls Ihre AUTO_INCREMENT-Spalte vom Typ BIGINT (64 Bit) ist, ist der
Wert, den mysql_insert_id() zurückgibt, nicht korrekt.
Verwenden Sie in einer SQL-Abfrage in diesem Fall stattdessen die
MySQL-interne SQL-Funktion LAST_INSERT_ID()
. Für
weitergehende Informationen bezüglich PHPs maximaler Integer-Werte, lesen
Sie bitte die
Integer-Dokumenation.
Hinweis:
Da mysql_insert_id() mit der zuletzt durchgeführten Abfrage arbeitet, sollten Sie mysql_insert_id() unmittelbar nach der Abfrage aufrufen, die den Wert erzeugt.
Hinweis:
Der Wert der MySQL-SQL-Funktion
LAST_INSERT_ID()
gibt immer den zuletzt erzeugten AUTO_INCREMENT-Wert zurück. Dieser wird zwischen Abfragen nicht zurückgesetzt.