dedlfix: SQL Performance

Beitrag lesen

Tach!

Auslesen kann ich die ID zwar mit $PDO->lastInsertId(), aber wie sicher ist das? Wird diese ID, "die durch das Query erzeugt wurde", daran gebunden und ist daher sicher oder muss ich mir Gedanken darüber machen, dass jemand zwischendurch einen Request ausführt und dann die ID einer anderen Anleitung erhalte?

die last_insert_id ist in der regel session-gebunden. anderer request - andere session. hängt aber letztlich vom treiber ab, den man benutzt.

Dann ist der Treiber kaputt. PDO::lastInsertId() verhält sich unterschiedlich, je nach verwendetem DBMS. Bei MySQL liefert es die zuletzt vergebene ID, solange die Datenbankverbindung bestehen bleibt. Das heißt also, wenn da kein Connection-Sharing betrieben wird, die Verbindung nicht geschlossen wird und auch kein anderer INSERT auf Tabellen mit auto_increment-Spalte ausgeführt wird, dann ist der lastInsertId-Wert eindeutig. Das wird von MySQL garantiert.

dedlfix.