Heim > Backend-Entwicklung > PHP-Tutorial > Wie rufe ich die ID einer neu eingefügten Zeile in PHP/MySQL ab?

Wie rufe ich die ID einer neu eingefügten Zeile in PHP/MySQL ab?

Patricia Arquette
Freigeben: 2024-12-04 20:05:19
Original
797 Leute haben es durchsucht

How to Retrieve the ID of a Newly Inserted Row in PHP/MySQL?

Rufen Sie die ID einer eingefügten Zeile in PHP/MySQL ab

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.

Race Conditions vermeiden

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.

Verwendung von mysqli_insert_id()

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);
Nach dem Login kopieren

Mehrere Abfragen in einem Vorgang

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())");
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage