INSERT über mehrere Tabellen

Hallo zusammen,

ich wollte einen Insert über zwei Tabellen durchführen, wobei die Tabellen den Primärschlüssel über auto_increment vergeben und in die zweite Tabelle den Fremdschlüssel durch die INSERT Anweisung zugewiesen bekommen soll.
Ich dachte da die Möglichkeit über $mysqli->insert_id den Primärschlüssel den Primärschlüssel der ersten Tabelle auszulesen und als Fremdschlüssel in die zweite einzutragen. In den Tests funktionierte das gut, aber ich bin mir eben nicht sicher, ob ich vielleicht doch etwas übersehen habe und es zu Problemen kommen kann.

$mysqli-\>query("INSERT INTO `1` (`ID`, `A`, `B`, `C`, `D`) VALUES ('', '2', 'b', 'c', 'd');");
$mysqli-\>query("INSERT INTO `2` (`ID`, `FS_ID`, `FS_A`, `FS_B`, `FS_C`, `FS_D`)
VALUES ('', $mysqli-\>insert\_id, 'NACHNAME', 'NACHNAME', 'NACHNAME', 'NACHNAME');");

Funktioniert das fehlerfrei oder kann es unter Umständen zu Problemen kommen?

Gruß

Hi,

an sich sollte das kein Problem darstellen, nutze ich auch an mehreren Stellen so in der Form.
Was passieren kann: In der Nanosekunde zwischen dem ersten und dem zweiten Insert die Datenbank, dein Script oder irgendwas dazwischen abstürzt. Dann würde dir der Datensatz in Tabelle 2 Fehlen.

Hier würden dann Transaktionen Abhilfe schaffen.

Grüße
IceDragon

Vielen Dank!
Hallo!

Von Transaktionen habe ich zwar unter PHP noch überhaupt keine Ahnung, aber zumindest bin ich schon auf dem richtigen Weg.

Gruß