Wenn Sie eine Zeile in eine MySQL-Tabelle mit einem automatisch inkrementierenden ID-Feld einfügen, ist es wichtig, die abzurufen neu generierte ID für nachfolgende Vorgänge.
Ein Ansatz zum Erhalten der id dient dazu, die Datenbank nach der Zeile abzufragen, die den eingefügten Informationen entspricht. Diese Methode führt jedoch zu einer Race-Bedingung, bei der eine weitere Zeile eingefügt werden könnte, bevor die Abfrage ausgeführt wird, was zu ungenauen Ergebnissen führt.
Eine zuverlässige Lösung ist die Verwendung von MySQLs LAST_INSERT_ID( ) Funktion. Die mysqli_insert_id()-Methode in PHP gibt die zuletzt generierte ID für die aktuelle Verbindung zurück.
$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db'); mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')"); $id = mysqli_insert_id($link);
Ein alternativer Ansatz besteht darin, mehrere Abfragen in einem einzigen Vorgang auszuführen. Nutzen Sie die LAST_INSERT_ID()-Methode von MySQL. Dadurch wird sichergestellt, dass die ID auch dann korrekt zugewiesen wird, wenn mehrere Tabellen beteiligt sind.
mysqli_query($link, "INSERT INTO my_user_table ...; INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
Diese Methode macht die Sorge um Race Conditions überflüssig und bietet eine zuverlässige Möglichkeit, die ID der eingefügten Zeile abzurufen.
Das obige ist der detaillierte Inhalt vonWie rufe ich die ID einer neu eingefügten Zeile in PHP/MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!