phpbar.de logo

Mailinglisten-Archive

[php] Frage zu last_insert_id()

[php] Frage zu last_insert_id()

Egon Schmid eschmid_(at)_php.net
Sun, 28 Nov 1999 17:12:18 +0100


Michael Forster wrote:

> hat jemand von Euch Erfahrungen mit dem Einsatz von last_insert_id()?

Ja ich!
 
> Ich habe ein Table mit einem auto_increment column. Nach dem Insert zählt
> mir dieses Feld automatisch hoch. Alles klar, das soll es auch. Ich möchte
> jetzt genau diesen Wert dieses Feldes in ein zweites Table schreiben.
> Ich dachte da an last_insert_id(). Ich habe jetzt allerdings Bedenken, dass
> mir ein anderer Client, der zwischenzeitlich auch auf dieses Table schreibt,
> das Ergebnis von last_insert_id() verfäscht.

Der andere Client benutzt hoffentlich eine andere Connection-ID.
 
> Beispiel:
> Ich mache einen Insert, das auto_increment Feld erzeugt den Wert 1000.
> Jetzt kommt ein anderer Client daher und setzt den Zähler auf 1001.
> Wenn ich jetzt in meiner gleichen aktiven Session last_insert_id() benutze,
> bekomme ich dann den Wert 1000 oder den Wert 1001 zurück???

Ein eigener Test sagt mehr als 1000 Worte.
 
> Das Manual sagt auf S.171:
> The last ID that was generated is maintained in the Server on a
> per-connection basis. It will not be changed by another client...

Welches Manual meinst Du? Es gibt ja mittlerweile soviele.
 
> Das ist eigentlich eindeutig, allerdings sind andere Stellen im Handbuch
> wiederum nicht so eindeutig, bzw. wiedersprechen IMHO sogar dieser Aussage.

Ja ich weiss manchmal muss man wirklich zwischen den Zeilen lesen. Aber
ich glaube schon, wenn sich da was wiederspricht, dann hätte mir Zeev
was gesagt, oder es doch gleich in der Online Doku abgeändert.
 
> Hat jemand schon einmal diese Funktion benutzt und welche Erfahrungen gibt
> es?

Es sollte genau so funktionieren wie in der MySQL Doku. Wenn nicht, dann
PM an mich und ich schreibs ins Manual. 
 
> Danke für jeden Tipp!

Ich auch. Demnächst erweitere ich die MySQL-Doku mit den Formulierungen
von Paul DuBois. Das Buch gibts demnächst vom New Riders Verlag und kann
schon bei der untengenannten Books Page geordert werden.

-Egon

--
Grüninger Straße 6 · D-70599 Stuttgart
Fon +49 711 45 37 21 · http://www.php.net/
http://www.php.net/manual/ · http://www.php.net/books.php3


php::bar PHP Wiki   -   Listenarchive