select = $select; } /** * @param AdapterInterface $adapter * @param StatementContainerInterface $statementContainer */ public function prepareStatement(AdapterInterface $adapter, StatementContainerInterface $statementContainer) { // localize variables foreach (get_object_vars($this->select) as $name => $value) { $this->{$name} = $value; } parent::prepareStatement($adapter, $statementContainer); } /** * @param PlatformInterface $platform * @return string */ public function getSqlString(PlatformInterface $platform = null) { // localize variables foreach (get_object_vars($this->select) as $name => $value) { $this->{$name} = $value; } return parent::getSqlString($platform); } protected function processLimit(PlatformInterface $platform, DriverInterface $driver = null, ParameterContainer $parameterContainer = null) { if ($this->limit === null) { return null; } if ($driver) { $sql = $driver->formatParameterName('limit'); $parameterContainer->offsetSet('limit', (int) $this->limit, ParameterContainer::TYPE_INTEGER); } else { $sql = $this->limit; } return array($sql); } protected function processOffset(PlatformInterface $platform, DriverInterface $driver = null, ParameterContainer $parameterContainer = null) { if ($this->offset === null) { return null; } if ($driver) { $parameterContainer->offsetSet('offset', (int) $this->offset, ParameterContainer::TYPE_INTEGER); return array($driver->formatParameterName('offset')); } return array($this->offset); } }