pdo = new PDO( $config['dsn'], $config['username'] ?? null, $config['password'] ?? null, $config['options'] ?? [] ); } public function pdo(): PDO { return $this->pdo; } public function query(string $sql, array $parameters = []): array { $statement = $this->pdo->prepare($sql); $statement->execute($parameters); return $statement->fetchAll(PDO::FETCH_ASSOC); } public function first(string $sql, array $parameters = []): ?array { $rows = $this->query($sql, $parameters); return $rows[0] ?? null; } public function execute(string $sql, array $parameters = []): bool { $statement = $this->pdo->prepare($sql); return $statement->execute($parameters); } }