prepare("SELECT * FROM blacklist WHERE id = :id"); $stmt->execute(['id' => $id]); $record = $stmt->fetch(PDO::FETCH_ASSOC); echo json_encode($record ?: []); } else { $search = $_GET['search'] ?? ''; if ($search) { $stmt = $pdo->prepare("SELECT * FROM blacklist WHERE platform_name LIKE :search OR user_id LIKE :search ORDER BY add_time DESC"); $stmt->execute(['search' => "%$search%"]); } else { $stmt = $pdo->query("SELECT * FROM blacklist ORDER BY add_time DESC"); } $records = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($records ?: []); } break; case 'POST': // 必传字段校验 $required = ['platformName','userId','violationType','occurTime','reason']; foreach ($required as $field) { if (empty($data[$field])) { throw new Exception("字段 [$field] 不能为空"); } } $stmt = $pdo->prepare("INSERT INTO blacklist (platform_name, user_id, related_accounts, operator_id, violation_type, punishment_type, occur_time, location, reason, tags, attachment) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([ $data['platformName'], $data['userId'], $data['relatedAccounts'] ?? '', $data['operatorId'] ?? '', $data['violationType'], $data['punishmentType'] ?? '', $data['occurTime'], $data['location'] ?? '', $data['reason'], $data['tags'] ?? '', $data['attachment'] ?? null ]); echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]); break; case 'PUT': if (empty($data['id'])) { throw new Exception("缺少ID,无法修改"); } $stmt = $pdo->prepare("UPDATE blacklist SET platform_name=?, user_id=?, related_accounts=?, operator_id=?, violation_type=?, punishment_type=?, occur_time=?, location=?, reason=?, tags=?, attachment=? WHERE id=?"); $stmt->execute([ $data['platformName'] ?? '', $data['userId'] ?? '', $data['relatedAccounts'] ?? '', $data['operatorId'] ?? '', $data['violationType'] ?? '', $data['punishmentType'] ?? '', $data['occurTime'] ?? '', $data['location'] ?? '', $data['reason'] ?? '', $data['tags'] ?? '', $data['attachment'] ?? null, $data['id'] ]); echo json_encode(['success' => true]); break; case 'DELETE': if (empty($_GET['id'])) { throw new Exception("缺少ID参数"); } $stmt = $pdo->prepare("DELETE FROM blacklist WHERE id=?"); $stmt->execute([$_GET['id']]); echo json_encode(['success' => true]); break; default: http_response_code(405); echo json_encode(['error' => 'Method not allowed']); } } catch (Exception $e) { // 永远只返回JSON,不返回任何HTML http_response_code(200); echo json_encode([ 'success' => false, 'message' => $e->getMessage() ]); } ?>