Abrufen und Verwenden der letzten Zeilen-ID für tabellenübergreifendes Einfügen in PHP
Bei der Durchführung mehrerer Einfügungen in verschiedenen Tabellen ist ein Abruf erforderlich die zuletzt eingefügte ID aus einer Tabelle, die als Referenz bei nachfolgenden Einfügungen verwendet werden soll. In PHP erfordert diese Aufgabe bei Verwendung der mysqli-Erweiterung ein wenig Verständnis.
In Ihrem bereitgestellten Code haben Sie versucht, das Ergebnis von $mysqli->insert_id direkt an das Bildfeld in Ihrer Table1-Insert-Anweisung zu binden . Dieser Ansatz ist jedoch falsch, da die zuletzt eingefügte ID aus der vorherigen Einfügeanweisung erhalten werden sollte.
Um die zuletzt eingefügte ID korrekt abzurufen und zu verwenden, müssen Sie zunächst sicherstellen, dass Ihre Tabelle über ein automatisch inkrementierendes Feld verfügt. normalerweise mit dem Namen „id“ bezeichnet. Dieses Feld verfolgt den nächsten verfügbaren ganzzahligen Wert, der als Primärschlüssel für neue Datensätze verwendet werden soll.
Sobald Sie ein automatisch inkrementierendes Feld haben, können Sie die Funktion mysqli_insert_id($conn) verwenden, um die ID von abzurufen die letzte eingefügte Zeile. Hier ist ein Beispiel:
$username = 'user1'; $fname = 'John'; $lname = 'Doe'; // Insert into table2 $insert = "INSERT INTO table2 (username) VALUES (?)"; if ($stmt = $mysqli->prepare($insert)) { $stmt->bind_param('s', $username); $stmt->execute(); } // Retrieve last inserted ID for image $last_id = mysqli_insert_id($conn); // Insert into table1 $insert = "INSERT INTO table1 (username, firstname, lastname, image) VALUES (?, ?, ?, $last_id)"; if ($stmt = $mysqli->prepare($insert)) { $stmt->bind_param('sss', $username, $fname, $lname); $stmt->execute(); }
In diesem korrigierten Code fügen wir zuerst einen Datensatz in Tabelle2 ein und rufen dann die zuletzt eingefügte ID mit mysqli_insert_id($conn) ab. Diese ID wird dann als Bildfeld in der nachfolgenden Einfügeanweisung in Tabelle1 verwendet.
Das obige ist der detaillierte Inhalt vonWie kann ich die zuletzt eingefügte ID für tabellenübergreifende Einfügungen in PHP abrufen und verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!