beginTransaction(); // 1. Insert the new server $stmt = $pdo->prepare("INSERT INTO servers (name, owner_id) VALUES (:name, :owner_id)"); $stmt->execute(['name' => $server_name, 'owner_id' => $user_id]); $server_id = $pdo->lastInsertId(); // 2. Add the owner to the server_members table $stmt = $pdo->prepare("INSERT INTO server_members (server_id, user_id) VALUES (:server_id, :user_id)"); $stmt->execute(['server_id' => $server_id, 'user_id' => $user_id]); // 3. Create a default 'general' channel for the new server $stmt = $pdo->prepare("INSERT INTO channels (server_id, name) VALUES (:server_id, :name)"); $stmt->execute(['server_id' => $server_id, 'name' => 'general']); // Commit the transaction $pdo->commit(); // Redirect to the main page after creation header('Location: index.php'); exit; } catch (PDOException $e) { // Rollback the transaction if something failed if ($pdo->inTransaction()) { $pdo->rollBack(); } $error = "An error occurred while creating the server: " . $e->getMessage(); } } } ?>
Give your new server a personality with a name. You can always change it later.