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

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

DDD
Freigeben: 2024-12-08 04:12:10
Original
885 Leute haben es durchsucht

How to Efficiently Retrieve the Auto-Incremented ID After an INSERT in PHP/MySQL?

Einfügen einer Zeile und Abrufen der „ID“ in PHP/MySQL

Das Einfügen einer Zeile in eine MySQL-Tabelle erfordert häufig das Abrufen der neu generierten „ID“. für die eingefügte Zeile. Normalerweise erfordert dies eine nachfolgende Abfrage, um die Zeile abzurufen, die mit den eingefügten Daten übereinstimmt. Diese Methode birgt jedoch die Möglichkeit doppelter Zeilen mit unterschiedlichen „ID“-Werten.

Ein effizienterer Ansatz besteht darin, die automatische Inkrementierung von MySQL zu nutzen Funktionalität und die PHP-Funktion mysqli_insert_id(). Mit dieser Funktion können Sie die ID der zuletzt eingefügten Zeile innerhalb der aktuellen Verbindung abrufen:

<?php
$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

Dieser Ansatz eliminiert das Risiko von Race Conditions und bietet eine zuverlässige Möglichkeit, die „ID“ der neu eingefügten Zeile zu erhalten Zeile.

Eine andere Technik besteht darin, zwei Abfragen in einer einzigen Transaktion auszuführen und dabei die LAST_INSERT_ID()-Methode von MySQL zu nutzen:

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

Dies Die Methode ändert beide Tabellen innerhalb einer einzigen Transaktion und sorgt so für konsistente Daten in den betroffenen Tabellen.

Das obige ist der detaillierte Inhalt vonWie kann ich die automatisch inkrementierte 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage