PHP: Mit mysql_insert_id() den letzten Autoinkrement-Wert von MySQL auslesen

Kein Kommentar Autor: Jürgen (jdo)

In MySQL kann man bekanntlich Felder so definieren, dass diese bei einem neuen Eintrag automatisch nach oben zählen (autoinkrement). jetzt kann es aber vorkommen, dass man genau diesen Wert für eine weitere Verarbeitung benötigt. PHP stellt hierfür die Funktion mysql_insert_id() zur Verfügung. Stellen Sie aber sicher, dass Sie diese Funktion direkt nach dem Schreiben in die Datenbank aufrufen. Ein Beispiel:

$query = "INSERT INTO 'dinge' ( 'ding1' , 'ding2' , 'ding3' ) VALUES ( '$wert1', '$wert2', '$wert3')";
mysql_query($query); // $query ausführen
$lastItemID = mysql_insert_id(); // letzen Autoinkrement-Wert abfragen

Hat die vorangehende Abfrage keinen Autoinkrement-Wert erzeugt, gibt die Funktion 0 zurück. Die Entwickler warnen allerdings bei der Verwendung dieser Funktion im Zusammenhang mit dem Typ BIGINT. Falls die Autoinkrement-Spalte BIGINT ist, liefert mysql_insert_id() einen falschen Wert zurück. In solchen Fällen sollten Anwender auf die in MySQL enthaltene interne Funktion LAST_INSERT_ID() zurück greifen:

$query = mysql_query("SELECT LAST_INSERT_ID()");



 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.