inner = $inner; } public function closeCursor(): bool { $this->inner->free(); return true; } public function fetch(int $fetchMode = PDO::FETCH_ASSOC) { return match ($fetchMode) { PDO::FETCH_ASSOC => $this->inner->fetchAssociative(), PDO::FETCH_NUM => $this->inner->fetchNumeric(), PDO::FETCH_COLUMN => $this->inner->fetchOne(), default => throw new \Exception('Fetch mode needs to be assoc, num or column.'), }; } public function fetchAll(int $fetchMode = PDO::FETCH_ASSOC): array { return match ($fetchMode) { PDO::FETCH_ASSOC => $this->inner->fetchAllAssociative(), PDO::FETCH_NUM => $this->inner->fetchAllNumeric(), PDO::FETCH_COLUMN => $this->inner->fetchFirstColumn(), default => throw new \Exception('Fetch mode needs to be assoc, num or column.'), }; } public function fetchColumn($columnIndex = 0) { return $this->inner->fetchOne(); } public function fetchOne() { return $this->inner->fetchOne(); } public function rowCount(): int { return $this->inner->rowCount(); } }