Mehrere INSERT INTO hintereinander?
Hallo, ich habe das Problem, dass ich Datensätze in zwei Tabellen gleichzeitig eintragen muss, jedoch funktioniert dies nicht und es wird nichts eingetragen. Ich habe schon vieles ausprobiert z.B. die Statements durch Semikolon oder Kommata zu trennen oder sie einfach so stehen lassen.
Hier mein Code:
$user_type = e($_POST['user_type']);
$query = "INSERT INTO tlogin (Login, Status, Passwort, Name)
VALUES('$username', '$user_type', '$password', '$name')
INSERT INTO tkunde (Name1)
VALUES('$vorname')";
mysqli_query($db, $query);
$_SESSION['success'] = "New user successfully created!!";
header('location: home.php');
}else{
$query = "INSERT INTO tlogin (Login, Status, Passwort, Name)
VALUES('$username', 'user', '$password', '$name')
INSERT INTO tkunde (Name1)
VALUES('$vorname')";
mysqli_query($db, $query);
Danke schonmal für die Hilfe ^^
3 Antworten
Du kannst diese Queries nicht so einfach in einem Command ausführen. Empfehlen würde ich, eine Transaktion zu verwenden und die Queries in dieser Transaktion in separaten Schritten auszuführen.
Siehe:
https://stackoverflow.com/questions/802437/how-to-execute-two-mysql-queries-as-one-in-php-mysql
https://www.php.net/manual/en/mysqli.multi-query.php
Du brauchst einen speziellen Befehl, um mehrere Queries gleichzeitig auszuführen.
Probiers so:
INSERT INTO tbl ( S1 , S2 , S3 )
VALUES ('Z1S1', 'Z1S2', 'Z1S3')
, ('Z2S1', 'Z2S2', 'Z2S3')
, ('Z3S1', 'Z3S2', 'Z3S3')