MySQL: LAST_INSERT_ID() gibt Null zurück
Beim Versuch, die zuletzt eingefügte ID mit LAST_INSERT_ID() abzurufen, nachdem Daten in eine Tabelle eingefügt wurden, Benutzer stoßen möglicherweise auf ein anhaltendes Problem, bei dem die Funktion 0 zurückgibt. Dies kann auch bei Verwendung alternativer Einfügesyntaxen wie dem Einfügen von NULL oder 0 oder auftreten Werte vollständig weglassen.
Untersuchung und Lösung:
Die Hauptursache für dieses Problem liegt oft in der PersistentConnections-Einstellung von MySQL in der phpmyadmin-Konfiguration. Wenn diese Einstellung auf FALSE gesetzt ist, wird für jede Abfrage eine neue Verbindung hergestellt, wodurch der Verbindungskontext effektiv zurückgesetzt wird.
In diesem speziellen Fall war das Problem darauf zurückzuführen, dass das PersistentConnections-Flag in der phpmyadmin-Konfiguration auf FALSE gesetzt war. Jede Abfrage initiierte eine neue Verbindung, was zu einer neuen CONNECTION_ID führte. Folglich wurde LAST_INSERT_ID() wirkungslos, da es auf den Verbindungskontext angewiesen ist, um die zuletzt eingefügte ID abzurufen.
Schlussfolgerung:
Durch Setzen von PersistentConnections auf TRUE im phpmyadmin Konfigurationsdatei kann das Problem der Verbindungspersistenz behoben werden. Dadurch kann die Funktion LAST_INSERT_ID() die zuletzt eingefügte ID korrekt abrufen, da der Verbindungskontext über mehrere Abfragen hinweg beibehalten wird.
Das obige ist der detaillierte Inhalt vonWarum gibt LAST_INSERT_ID() von MySQL Null zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!