Problemübersicht:
Einfügen von Daten in eine MySQL-Tabelle mit gängigen Methoden (z. B. Einfügen von NULL, 0 oder leeren Klammern) und anschließendes Abfragen der zuletzt eingefügten ID (LAST_INSERT_ID()) gibt konsistent 0 zurück. Dieses Problem betrifft sowohl PHPs mysql_insert_id als auch PDO::lastInsertId().
Lösung:
Das Problem liegt in der MySQL-Konfigurationsdatei phpmyadmin. Wenn PersistentConnections auf FALSE gesetzt ist, wird für jede Abfrage eine neue CONNECTION_ID erstellt. Dadurch wird das LAST_INSERT_ID()-Ergebnis ungültig, da es mit der vorherigen Verbindung verknüpft ist.
Um das Problem zu beheben, setzen Sie PersistentConnections in der phpmyadmin-Konfigurationsdatei auf TRUE. Dadurch wird sichergestellt, dass die gleiche Verbindung über mehrere Abfragen hinweg aufrechterhalten wird, sodass LAST_INSERT_ID() die zuletzt eingefügte ID genau zurückgeben kann.
Zusätzliche Informationen:
Für weitere Einblicke in die Informationen zu den Auswirkungen von PersistentConnections finden Sie im Thema „Jede Abfrage erstellt eine neue.“ CONNECTION_ID()".
Danksagungen:
Besonderer Dank geht an dnagirl für die wertvolle Unterstützung bei der Identifizierung dieses Problems.
Das obige ist der detaillierte Inhalt vonWarum gibt „LAST_INSERT_ID()' in MySQL 0 zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!