pdo = getDB(); } public static function get(): Database { if (self::$instance === null) { self::$instance = new Database(); } return self::$instance; } public function query(string $sql, array $params = []): PDOStatement { $stmt = $this->pdo->prepare($sql); $stmt->execute($params); return $stmt; } public function fetchOne(string $sql, array $params = []): ?array { $stmt = $this->query($sql, $params); $row = $stmt->fetch(); return $row ?: null; } public function fetchAll(string $sql, array $params = []): array { return $this->query($sql, $params)->fetchAll(); } public function execute(string $sql, array $params = []): int { $stmt = $this->query($sql, $params); return $stmt->rowCount(); } public function lastInsertId(): string { return $this->pdo->lastInsertId(); } }