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

23 April 2010 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:

  1. $query = "INSERT INTO 'dinge' ( 'ding1' , 'ding2' , 'ding3' ) VALUES ( '$wert1', '$wert2', '$wert3')"// $query ausführen
  2. // 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:

  1. span class="st0">"SELECT LAST_INSERT_ID()");

Du kannst gerne Deinen Senf zu diesem Beitrag geben: Hier geht es zu den Kommentaren




Schreiben macht durstig! Eine kleine Erfrischung kann daher nie schaden. Wem dieser freie Artikel gefallen hat, der darf mir gerne einen frisch gezapften Hopfen-Tee ausgeben (Paypal - der Spenden-Knopf
oder bitcoin - Adresse: 1NacVNwcLLePUVv8uSafu5Ykdwh8QyDfgK). Ich freue mich über jede noch so kleine Spende. Vielen Dank und Prost!
 Alle Kommentare als Feed abonnieren

Antworten