• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/db/dbresult.php
  • Класс: BitrixMainDBDbResult
  • Вызов: DbResult::fetch
public function fetch(BitrixMainTextConverter $converter = null)
{
	if ($this->trackerQuery != null)
		$this->trackerQuery->restartQuery();

	$resultFields = $this->getResultFields();

	$dataTmp = $this->fetchRowInternal();

	if ($this->trackerQuery != null)
		$this->trackerQuery->refinishQuery();

	if (!$dataTmp)
		return false;

	$data = array();
	foreach ($dataTmp as $key => $value)
		$data[$resultFields[$key]["name"]] = $this->convertDataFromDb($value, $resultFields[$key]["type"]);

	if (!empty($this->arSerializedFields))
	{
		foreach ($this->arSerializedFields as $field)
		{
			if (array_key_exists($field, $data))
				$data[$field] = unserialize($data[$field]);
		}
	}

	if (!empty($this->arReplacedAliases))
	{
		foreach ($this->arReplacedAliases as $tech => $human)
		{
			if (array_key_exists($tech, $data))
			{
				$data[$human] = $data[$tech];
				unset($data[$tech]);
			}
		}
	}

	if ($this->fetchDataModifier != null)
	{
		$c = $this->fetchDataModifier;
		$data = $c($data);
	}

	if ($converter != null)
	{
		$arKeys = array_keys($data);
		foreach ($arKeys as $key)
			$data[$key] = $converter->encode(
				$data[$key],
				array_key_exists($key."_TYPE", $data) ? $data[$key."_TYPE"] : BitrixMainTextConverter::TEXT
			);
	}

	return $data;
}