Function.mysql-insert-id
Aus PHP-Wiki
mysql_insert_id — Liefert die ID einer vorherigen INSERT-Operation
Beschreibung
int mysql_insert_id ([ resource $Verbindungs-Kennung ] )
mysql_insert_id() liefert die ID,
die bei der letzten INSERT-Operation für ein Feld vom Typ
AUTO_INCREMENT vergeben wurde. Wenn die
Verbindungs-Kennung
nicht angegeben wird,
wird die zuletzt geöffnete Verbindung angenommen.
mysql_insert_id() liefert 0, wenn die vorhergehende
Abfrage keinen AUTO_INCREMENT Wert erzeugt hat. Falls Sie den Wert zur
späteren Verwendung speichern möchten, stellen Sie sicher, dass Sie
mysql_insert_id() direkt nach der Abfrage aufrufen,
die einen Wert erzeugt hat.
Hinweis:
Der Wert der MySQL SQL Funktion LAST_INSERT_ID()
liefert immer den zuletzt erzeugten AUTO_INCREMENT Wert. Dieser wird
zwischen Abfragen nicht zurückgesetzt.
Warnung
mysql_insert_id() konvertiert den Typ der Rückgabe
der nativen MySQL C API Funktion mysql_insert_id() in
den Typ long (als int in PHP bezeichnet).
Falls Ihre AUTO_INCREMENT Spalte vom Typ BIGINT ist, ist der Wert den
mysql_insert_id() liefert, nicht korrekt.
Verwenden Sie in diesem Fall stattdessen die MySQL interne SQL Funktion
LAST_INSERT_ID() in einer SQL-Abfrage.
Beispiel #1 mysql_insert_id() Beispiel
<?php
mysql_connect("localhost", "mysql_user", "mysql_password")
or die(": " . mysql_error());
mysql_select_db("mydb");
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf (" %d\n", mysql_insert_id());
?>
<?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 zuletzt eingefügte Datensatz hat die ID %d\n", mysql_insert_id());
?>
Siehe auch mysql_query() und
mysql_info().