Bitrix-D7  20.0.0
Класс Result
Граф наследования:Result:
ArrayResult MssqlResult MysqliResult MysqlResult OracleResult Result RequestResult ResultFile ShipmentResult StatusResult OrderEditResult ErrorsContainer ServiceResult ResultSerializable

Открытые члены

 __construct ($result, Connection $dbConnection=null, \Bitrix\Main\Diag\SqlTrackerQuery $trackerQuery=null)
 
 getResource ()
 Returns database-specific resource of this result. Подробнее...
 
 setReplacedAliases (array $replacedAliases)
 Sets list of aliased columns. Подробнее...
 
 addReplacedAliases (array $replacedAliases)
 Extends list of aliased columns. Подробнее...
 
 setSerializedFields (array $serializedFields)
 Sets internal list of fields which will be unserialized on fetch. Подробнее...
 
 addFetchDataModifier ($fetchDataModifier)
 Modifier should accept once fetched array as an argument, then modify by link or return new array: Подробнее...
 
 fetchRaw ()
 Fetches one row of the query result and returns it in the associative array of raw DB data or false on empty data. Подробнее...
 
 fetch (\Bitrix\Main\Text\Converter $converter=null)
 Fetches one row of the query result and returns it in the associative array of converted data or false on empty data. Подробнее...
 
 fetchAll (\Bitrix\Main\Text\Converter $converter=null)
 Fetches all the rows of the query result and returns it in the array of associative arrays. Подробнее...
 
 getFields ()
 Returns an array of fields according to columns in the result. Подробнее...
 
 getSelectedRowsCount ()
 Returns the number of rows in the result. Подробнее...
 
 getTrackerQuery ()
 Returns current query tracker. Подробнее...
 
 getConverters ()
 
 setConverters ($converters)
 
 setCount ($n)
 Sets record count. Подробнее...
 
 getCount ()
 Returns record count. Подробнее...
 
 getIterator ()
 Retrieve an external iterator http://php.net/manual/en/iteratoraggregate.getiterator.php. Подробнее...
 

Защищенные члены

 fetchRowInternal ()
 Returns next result row or false. Подробнее...
 

Защищенные данные

 $connection
 
 $resource
 
 $trackerQuery = null
 
 $converters = array()
 
 $serializedFields = array()
 
 $replacedAliases = array()
 
 $fetchDataModifiers = array()
 
 $count
 

Подробное описание

См. определение в файле main/lib/db/result.php строка 18

Конструктор(ы)

◆ __construct()

__construct (   $result,
Connection  $dbConnection = null,
\Bitrix\Main\Diag\SqlTrackerQuery  $trackerQuery = null 
)
Аргументы
resource$resultDatabase-specific query result.
Connection$dbConnectionConnection object.
\Bitrix\Main\Diag\SqlTrackerQuery$trackerQueryHelps to collect debug information.

Переопределяется в MysqliResult, MssqlResult, OracleResult и MysqlResult.

См. определение в файле main/lib/db/result.php строка 44

45  {
46  $this->resource = $result;
47  $this->connection = $dbConnection;
48  $this->trackerQuery = $trackerQuery;
49  $resultFields = $this->getFields();
50  if ($resultFields && $this->connection)
51  {
52  $helper = $this->connection->getSqlHelper();
53  foreach ($resultFields as $key => $type)
54  {
55  $converter = $helper->getConverter($resultFields[$key]);
56  if (is_callable($converter))
57  {
58  $this->converters[$key] = $converter;
59  }
60  }
61  }
62  }

Методы

◆ addFetchDataModifier()

addFetchDataModifier (   $fetchDataModifier)

Modifier should accept once fetched array as an argument, then modify by link or return new array:

  • function (&$data) { $data['AGE'] -= 7; }
  • function ($data) { $data['AGE'] -= 7; return $data; }
Аргументы
callable$fetchDataModifierValid callback.
Возвращает
void
Исключения

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 123

124  {
125  if (!is_callable($fetchDataModifier))
126  {
127  throw new \Bitrix\Main\ArgumentException('Data Modifier should be a callback');
128  }
129 
130  $this->fetchDataModifiers[] = $fetchDataModifier;
131  }

◆ addReplacedAliases()

addReplacedAliases ( array  $replacedAliases)

Extends list of aliased columns.

Аргументы
array[string]string$replacedAliases Aliases map from tech to human.
Возвращает
void
См. также
\Bitrix\Main\Db\Result::setReplacedAliases

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 96

97  {
98  $this->replacedAliases = array_merge($this->replacedAliases, $replacedAliases);
99  }

◆ fetch()

fetch ( \Bitrix\Main\Text\Converter  $converter = null)

Fetches one row of the query result and returns it in the associative array of converted data or false on empty data.

Аргументы
\Bitrix\Main\Text\Converter$converterOptional converter to encode data on fetching.
Возвращает
array|false

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 167

168  {
169  $data = $this->fetchRaw();
170 
171  if (!$data)
172  {
173  return false;
174  }
175 
176  if ($this->converters)
177  {
178  foreach ($this->converters as $field => $convertDataModifier)
179  {
180  $data[$field] = call_user_func_array($convertDataModifier, array($data[$field]));
181  }
182  }
183 
184  if ($this->serializedFields)
185  {
186  foreach ($this->serializedFields as $field)
187  {
188  if (isset($data[$field]))
189  $data[$field] = unserialize($data[$field]);
190  }
191  }
192 
193  if ($this->replacedAliases)
194  {
195  foreach ($this->replacedAliases as $tech => $human)
196  {
197  $data[$human] = $data[$tech];
198  unset($data[$tech]);
199  }
200  }
201 
202  if ($this->fetchDataModifiers)
203  {
204  foreach ($this->fetchDataModifiers as $fetchDataModifier)
205  {
206  $result = call_user_func_array($fetchDataModifier, array(&$data));
207 
208  if (is_array($result))
209  {
210  $data = $result;
211  }
212  }
213  }
214 
215  if ($converter != null)
216  {
217  foreach ($data as $key => $val)
218  {
219  $data[$key] = $converter->encode(
220  $val,
221  (isset($data[$key."_TYPE"])? $data[$key."_TYPE"] : \Bitrix\Main\Text\Converter::TEXT)
222  );
223  }
224  }
225 
226  return $data;
227  }

◆ fetchAll()

fetchAll ( \Bitrix\Main\Text\Converter  $converter = null)

Fetches all the rows of the query result and returns it in the array of associative arrays.

Returns an empty array if query has no data.

Аргументы
\Bitrix\Main\Text\Converter$converterOptional converter to encode data on fetching.
Возвращает
array

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 237

238  {
239  $res = array();
240  while ($ar = $this->fetch($converter))
241  {
242  $res[] = $ar;
243  }
244  return $res;
245  }

◆ fetchRaw()

fetchRaw ( )

Fetches one row of the query result and returns it in the associative array of raw DB data or false on empty data.

Возвращает
array|false

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 138

139  {
140  if ($this->trackerQuery != null)
141  {
142  $this->trackerQuery->restartQuery();
143  }
144 
145  $data = $this->fetchRowInternal();
146 
147  if ($this->trackerQuery != null)
148  {
149  $this->trackerQuery->refinishQuery();
150  }
151 
152  if (!$data)
153  {
154  return false;
155  }
156 
157  return $data;
158  }

◆ fetchRowInternal()

fetchRowInternal ( )
abstractprotected

Returns next result row or false.

Возвращает
array|false

Переопределяется в Result, OracleResult, MssqlResult, MysqliResult, MysqlResult и ArrayResult.

◆ getConverters()

getConverters ( )
Возвращает
callable[]

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 281

282  {
283  return $this->converters;
284  }

◆ getCount()

getCount ( )

Returns record count.

It's required to set record count explicitly before.

Возвращает
int
Исключения

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 308

309  {
310  if($this->count !== null)
311  {
312  return $this->count;
313  }
314  throw new \Bitrix\Main\ObjectPropertyException("count");
315  }

◆ getFields()

getFields ( )
abstract

Returns an array of fields according to columns in the result.

Возвращает
\Bitrix\Main\ORM\Fields\ScalarField[]

Переопределяется в Result, ArrayResult, MysqliResult, MysqlResult, OracleResult и MssqlResult.

◆ getIterator()

getIterator ( )

Retrieve an external iterator http://php.net/manual/en/iteratoraggregate.getiterator.php.

Возвращает
\Traversable An instance of an object implementing Iterator or Traversable
Начиная с
5.0.0

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 324

325  {
326  return new ResultIterator($this);
327  }

◆ getResource()

getResource ( )

Returns database-specific resource of this result.

Возвращает
null|resource

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 69

70  {
71  return $this->resource;
72  }

◆ getSelectedRowsCount()

getSelectedRowsCount ( )
abstract

Returns the number of rows in the result.

Возвращает
int

Переопределяется в Result, MssqlResult, ArrayResult, MysqliResult, MysqlResult и OracleResult.

◆ getTrackerQuery()

getTrackerQuery ( )

Returns current query tracker.

Возвращает
\Bitrix\Main\Diag\SqlTrackerQuery|null

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 273

274  {
275  return $this->trackerQuery;
276  }

◆ setConverters()

setConverters (   $converters)
Аргументы
callable[]$converters

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 289

290  {
291  $this->converters = $converters;
292  }

◆ setCount()

setCount (   $n)

Sets record count.

Аргументы
int$n

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 298

299  {
300  $this->count = (int)$n;
301  }

◆ setReplacedAliases()

setReplacedAliases ( array  $replacedAliases)

Sets list of aliased columns.

This allows to overcome database limits on length of the column names.

Аргументы
array[string]string$replacedAliases Aliases map from tech to human.
Возвращает
void
См. также
\Bitrix\Main\Db\Result::addReplacedAliases

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 83

84  {
85  $this->replacedAliases = $replacedAliases;
86  }

◆ setSerializedFields()

setSerializedFields ( array  $serializedFields)

Sets internal list of fields which will be unserialized on fetch.

Аргументы
array$serializedFieldsList of fields.
Возвращает
void

Переопределяется в Result.

См. определение в файле main/lib/db/result.php строка 108

109  {
110  $this->serializedFields = $serializedFields;
111  }

Поля

◆ $connection

$connection
protected

См. определение в файле main/lib/db/result.php строка 21

◆ $converters

$converters = array()
protected

См. определение в файле main/lib/db/result.php строка 28

◆ $count

$count
protected

См. определение в файле main/lib/db/result.php строка 37

◆ $fetchDataModifiers

$fetchDataModifiers = array()
protected

См. определение в файле main/lib/db/result.php строка 34

◆ $replacedAliases

$replacedAliases = array()
protected

См. определение в файле main/lib/db/result.php строка 32

◆ $resource

Bitrix Main DB Result $resource
protected

См. определение в файле main/lib/db/result.php строка 23

◆ $serializedFields

$serializedFields = array()
protected

См. определение в файле main/lib/db/result.php строка 30

◆ $trackerQuery

$trackerQuery = null
protected

См. определение в файле main/lib/db/result.php строка 25


Объявления и описания членов класса находятся в файле:
Bitrix\Main\DB\Result\$replacedAliases
$replacedAliases
Definition: main/lib/db/result.php:32
Bitrix\Main\DB\Result\fetchRaw
fetchRaw()
Fetches one row of the query result and returns it in the associative array of raw DB data or false o...
Definition: main/lib/db/result.php:138
Bitrix\Main\DB\Result\$converters
$converters
Definition: main/lib/db/result.php:28
Bitrix\Main\Text\Converter\TEXT
const TEXT
Definition: main/lib/text/converter.php:6
Bitrix\Main\DB\Result\fetch
fetch(\Bitrix\Main\Text\Converter $converter=null)
Fetches one row of the query result and returns it in the associative array of converted data or fals...
Definition: main/lib/db/result.php:167
Bitrix\Main\DB\Result\$count
$count
Definition: main/lib/db/result.php:37
Bitrix\Main\DB\Result\$resource
$resource
Definition: main/lib/db/result.php:23
Bitrix
Class Button.
Bitrix\Main\DB\Result\$trackerQuery
$trackerQuery
Definition: main/lib/db/result.php:25
Bitrix\Main\DB\Result\fetchRowInternal
fetchRowInternal()
Returns next result row or false.
Bitrix\Main\DB\Result\getFields
getFields()
Returns an array of fields according to columns in the result.
Bitrix\Main\DB\Result\$serializedFields
$serializedFields
Definition: main/lib/db/result.php:30