Hello T-Rex,
Wenn mysql und last_insert_id() denke daran: last_insert_id() ist auf die DB-Session bezogen. D.h., wenn jeder Prozess seine eigene DB-Session bekommt, ist alles ok.
Und woher soll ich jetzt wissen ob jeder Prozess eine eigene DB-Session bekommt?
*Hä?*
Das bestimmst Du doch als Programmierer, ob eine Datenbankverbindung besteht, oder nicht. Und solange sie besteht, werden die Queries auch mit demselben Cache ausgeführt, es sei denn, der Programmierer verlangt dediziert einen neuen. Die API von PHP nimmt auch darauf Rücksicht und leitet mWn auch alle dementsorechenden Anfragen transparent weiter und meldet die Ergebnisse zurück im Request/Error-Status
Im Webumfeld (HTTP/s) solltest Du immer damit rechnen, dass jeder Request eine neue Datenbankverbindung aufbauen muss. Das ist für das "Update-Management" besonders interessant, weil man da erkennen muss, ob zwischen dem Lesen eines Datensatzes (Request 1) und dem Zurückschreiben irgendwelcher Änderungen (Request 1+n) schon Änderungen durch Dritte stattgefunden haben.
Da hilft auch keine "Transaktion". Da hilft nur Nachdenken (*g*)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg