PDO::ERRMODE_EXCEPTION]); $action = $_GET['action'] ?? $_POST['action'] ?? ''; switch ($action) { case 'stats': $total = $pdo->query("SELECT COUNT(*) FROM admin.knowledge_base")->fetchColumn(); $categories = $pdo->query("SELECT category, COUNT(*) as count FROM admin.knowledge_base GROUP BY category ORDER BY count DESC")->fetchAll(PDO::FETCH_ASSOC); echo json_encode(['total' => $total, 'by_category' => $categories]); break; case 'search': $q = $_GET['q'] ?? ''; $results = $pdo->query("SELECT id, title, category, content FROM admin.knowledge_base WHERE title ILIKE '%$q%' OR content ILIKE '%$q%' LIMIT 10")->fetchAll(PDO::FETCH_ASSOC); echo json_encode(['results' => $results]); break; case 'get': $id = $_GET['id'] ?? 0; $entry = $pdo->query("SELECT * FROM admin.knowledge_base WHERE id = $id")->fetch(PDO::FETCH_ASSOC); echo json_encode($entry ?: ['error' => 'Not found']); break; case 'add': $title = $_POST['title'] ?? ''; $category = $_POST['category'] ?? ''; $content = $_POST['content'] ?? ''; $pdo->prepare("INSERT INTO admin.knowledge_base (title, category, content) VALUES (?, ?, ?)")->execute([$title, $category, $content]); echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]); break; default: echo json_encode(['name' => 'Knowledge Base API', 'actions' => ['stats', 'search', 'get', 'add'], 'entries' => $pdo->query("SELECT COUNT(*) FROM admin.knowledge_base")->fetchColumn()]); }