Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich die automatisch generierte ID nach einem INSERT in PHP/MySQL effizient abrufen?

Wie kann ich die automatisch generierte ID nach einem INSERT in PHP/MySQL effizient abrufen?

Mary-Kate Olsen
Freigeben: 2024-12-07 22:20:18
Original
734 Leute haben es durchsucht

How Can I Efficiently Retrieve the Auto-Generated ID After an INSERT in PHP/MySQL?

Abrufen der ID eingefügter Zeilen in PHP/MySQL

Eine der häufigsten Aufgaben bei der Arbeit mit MySQL-Datenbanken ist das Einfügen einer Zeile und das anschließende Abrufen ihrer Zeile Automatisch generierte ID. Dieser Prozess beinhaltet zwei unterschiedliche Abfragen, wodurch möglicherweise eine Zeitlücke zwischen dem Einfügen der Zeile und dem Abrufen der ID entsteht, was zu Race Conditions führen kann.

Glücklicherweise bietet PHP eine einfache Lösung für dieses Problem: die Funktion mysqli_insert_id() . Der folgende Code demonstriert seine Verwendung:

$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

mysqli_insert_id() ruft direkt die von der letzten INSERT-Anweisung generierte ID ab, sodass keine zusätzlichen Abfragen erforderlich sind. Dieser Ansatz garantiert, dass die abgerufene ID der gerade eingefügten Zeile entspricht.

Eine alternative Methode besteht darin, die LAST_INSERT_ID()-Funktion von MySQL innerhalb einer einzelnen Abfrage zu verwenden. Durch die Kombination mehrerer INSERT-Anweisungen wird es möglich, mehrere Tabellen gleichzeitig zu aktualisieren und den Aufwand des separaten ID-Abrufs zu vermeiden:

mysqli_query($link, "INSERT INTO my_user_table ...; INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
Nach dem Login kopieren

Es ist wichtig zu beachten, dass jede MySQL-Verbindung ihre eigene ID-Sequenz beibehält, um mögliche Konflikte zwischen ihnen zu vermeiden gleichzeitige Verbindungen.

Das obige ist der detaillierte Inhalt vonWie kann ich die automatisch generierte ID nach einem INSERT in PHP/MySQL effizient abrufen?. 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