query("SELECT UUID() AS id"); if (!$result) { http_response_code(500); echo json_encode(["error" => "Failed to generate UUID"]); break; } $row = $result->fetch_assoc(); $sessionId = $row['id']; // Insert into `sessions` table $stmt = $DB->prepare("INSERT INTO `sessions` (`ID`, `timestamp`) VALUES (?, CURRENT_TIMESTAMP())"); $stmt->bind_param("s", $sessionId); if (!$stmt->execute()) { http_response_code(500); echo json_encode(["error" => "Failed to insert into sessions"]); break; } $stmt->close(); // Prepare data as JSON and insert into `data` table $data = json_encode($jsx['data']); $stmt = $DB->prepare("INSERT INTO `data` (`ID`, `SessionData`) VALUES (?, ?)"); $null = NULL; // Required for bind_param with blob $stmt->bind_param("sb", $sessionId, $null); // Temporarily bind $null for blob // Send the actual blob content using send_long_data $stmt->send_long_data(1, $data); // Index 1 refers to the second "?" in bind_param if (!$stmt->execute()) { http_response_code(500); echo json_encode(["error" => "Failed to insert into data"]); break; } $stmt->close(); echo json_encode(["status" => "ok", "session" => $sessionId]); break; } case "get": { $sessionId = $jsx['id']; $stmt = $DB->prepare("SELECT `SessionData` FROM `data` WHERE `ID` = ?"); $stmt->bind_param("s", $sessionId); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows === 0) { http_response_code(404); echo json_encode(["error" => "Session not found"]); $stmt->close(); break; } $stmt->bind_result($sessionData); $stmt->fetch(); $stmt->close(); // Decode the JSON blob (optional — if you want raw JSON output) header("Content-Type: application/json"); echo $sessionData; break; } } ?>