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); ?>
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())"); ?>
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!