mysql_insert_id
(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 finden Sie im Ratgeber MySQL: Auswahl einer API. Alternativen zu dieser Funktion umfassen:
Beschreibung
$link_identifier
= NULL): intGibt die ID zurück, die für eine AUTO_INCREMENT-Spalte durch die vorherige Abfrage (meist INSERT) erzeugt wurde.
Parameter-Liste
-
Verbindungs-Kennung
-
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.
Rückgabewerte
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.
Beispiele
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());
?>
Anmerkungen
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.
Siehe auch
- mysql_query() - Sendet eine Abfrage an MySQL
- mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage