Heim >Backend-Entwicklung >PHP-Tutorial >Wie rufe ich die zuletzt eingefügte ID für Fremdschlüsselbeziehungen in MySQL ab?

Wie rufe ich die zuletzt eingefügte ID für Fremdschlüsselbeziehungen in MySQL ab?

Susan Sarandon
Susan SarandonOriginal
2024-12-07 06:40:12952Durchsuche

How Do I Retrieve the Last Inserted ID for Foreign Key Relationships in MySQL?

Abrufen der letzten Einfügungs-ID für Fremdschlüsselbeziehungen

In relationalen Datenbanken ist es üblich, Fremdschlüsselbeziehungen zwischen Tabellen einzurichten. Wenn Sie eine neue Zeile in eine untergeordnete Tabelle einfügen, müssen Sie diese möglicherweise mit einer Zeile in einer übergeordneten Tabelle verknüpfen. Um dies zu erreichen, müssen Sie normalerweise die zuletzt eingefügte ID aus der übergeordneten Tabelle abrufen und als Fremdschlüssel in der untergeordneten Tabelle verwenden.

Herausforderung:

Sie möchten ein Bild (aus Tabelle2) mit einem Benutzer (in Tabelle1) verknüpfen, indem Sie dessen Vornamen, Nachnamen und Benutzernamen verwenden. Wenn Sie jedoch versuchen, die zuletzt eingefügte ID aus Tabelle2 abzurufen und sie als Fremdschlüssel in Tabelle1 zu binden, funktioniert dies nicht.

Lösung:

An Um die zuletzt eingefügte ID erfolgreich abzurufen und zum Auffüllen eines Fremdschlüssels zu verwenden, müssen Sie die folgenden Schritte ausführen:

  1. Stellen Sie sicher, dass das ID-Feld in Tabelle2 ein ist Feld für die automatische Inkrementierung. Dadurch wird automatisch eine eindeutige ID für jede eingefügte Zeile generiert.
  2. Verwenden Sie die Funktion mysqli_insert_id(), nachdem Sie eine neue Zeile in Tabelle2 eingefügt haben. Diese Funktion gibt die letzte von der Datenbank generierte Auto-Inkrement-ID zurück.

Hier ist eine aktualisierte Version Ihres Codes, die die Funktion mysqli_insert_id() enthält:

$image = mysqli_insert_id($mysqli); // Retrieve the last inserted ID from table2
$stmt = $mysqli->prepare("
  insert into table1 (username, firstname, lastname, image) 
  select ?,?,?,image from table2 t2 where username = ? and  t2.id = ? 
   ");
$stmt->bind_param('sssss', $username, $fname, $lname, $username, $image);
$stmt->execute();

Indem Sie diese erstellen Wenn sich die Änderungen ändern, können Sie jetzt die zuletzt eingefügte ID aus Tabelle2 abrufen und sie als Fremdschlüssel verwenden, um die neue Zeile in Tabelle1 zu verknüpfen.

Das obige ist der detaillierte Inhalt vonWie rufe ich die zuletzt eingefügte ID für Fremdschlüsselbeziehungen in MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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