Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich die zuletzt eingefügte ID für tabellenübergreifende Einfügungen in PHP abrufen und verwenden?

Wie kann ich die zuletzt eingefügte ID für tabellenübergreifende Einfügungen in PHP abrufen und verwenden?

Barbara Streisand
Freigeben: 2024-12-02 06:56:10
Original
504 Leute haben es durchsucht

How to Retrieve and Use the Last Inserted ID for Cross-Table Inserts in PHP?

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();
}
Nach dem Login kopieren

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!

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