getMessage()); } return null; } if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["dbtype"])) { $_SESSION["dbtype"] = $_POST["dbtype"]; $_SESSION["host"] = $_POST["host"]; $_SESSION["dbname"] = $_POST["dbname"]; $_SESSION["user"] = $_POST["user"]; $_SESSION["pass"] = $_POST["pass"]; header("Location: " . $_SERVER["PHP_SELF"]); exit(); } if (isset($_GET["logout"])) { session_destroy(); header("Location: " . $_SERVER["PHP_SELF"]); exit(); } $action = $_GET["action"] ?? ""; if ($action === "get_tables") { $pdo = getConnection(); if (!$pdo) { exit(json_encode([])); } $type = $_SESSION["dbtype"]; $stmt = $type === "mysql" ? $pdo->query("SHOW TABLES") : $pdo->query( "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'" ); $tables = $stmt->fetchAll(PDO::FETCH_COLUMN); header("Content-Type: application/json"); echo json_encode($tables); exit(); } if ($action === "get_data") { $pdo = getConnection(); $table = preg_replace("/[^a-zA-Z0-9_]/", "", $_GET["table"] ?? ""); $offset = (int) ($_GET["offset"] ?? 0); $limit = 100; if (!$pdo || !$table) { exit("❌ Table not provided or no connection."); } $type = $_SESSION["dbtype"]; $columns = []; $pk = null; try { if ($type === "mysql") { $pkStmt = $pdo->query( "SHOW KEYS FROM `$table` WHERE Key_name = 'PRIMARY'" ); $pkRow = $pkStmt->fetch(PDO::FETCH_ASSOC); $pk = $pkRow["Column_name"] ?? null; $stmt = $pdo->query( "SELECT * FROM `$table` LIMIT $limit OFFSET $offset" ); } else { $pkStmt = $pdo->prepare( "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + QUOTENAME(CONSTRAINT_NAME)), 'IsPrimaryKey') = 1 AND TABLE_NAME = ?" ); $pkStmt->execute([$table]); $pk = $pkStmt->fetchColumn(); $stmt = $pdo->query( "SELECT * FROM [$table] ORDER BY [$pk] OFFSET $offset ROWS FETCH NEXT $limit ROWS ONLY" ); } $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (count($rows)) { $columns = array_keys($rows[0]); } if (!$pk && count($columns)) { $pk = $columns[0]; } echo "
" . htmlspecialchars($col) . " | "; } echo "Action |
---|---|
$val | "; } echo "|
"; } echo " |