exec($sql); $ensured = true; } function fetchRecentMatches(int $limit = 8): array { ensureFpsMatchesTable(); $limit = max(1, min($limit, 20)); $stmt = db()->prepare( 'SELECT id, player_name, weapon_key, weapon_name, kills, shots_fired, shots_hit, accuracy, damage_taken, duration_seconds, score, outcome, created_at FROM fps_matches ORDER BY created_at DESC, id DESC LIMIT :limit' ); $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetchAll(); } function fetchMatchById(int $id): ?array { ensureFpsMatchesTable(); $stmt = db()->prepare( 'SELECT id, player_name, weapon_key, weapon_name, kills, shots_fired, shots_hit, accuracy, damage_taken, duration_seconds, score, outcome, created_at FROM fps_matches WHERE id = :id LIMIT 1' ); $stmt->bindValue(':id', $id, PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(); return $row ?: null; }