(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.