• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/db/connection.php
  • Класс: BitrixMainDBConnection
  • Вызов: Connection::createResult
protected function createResult($result, DiagSqlTrackerQuery $trackerQuery = null);

/**
 * Executes a query to the database.
 *
 * - query($sql)
 * - query($sql, $limit)
 * - query($sql, $offset, $limit)
 * - query($sql, $binds)
 * - query($sql, $binds, $limit)
 * - query($sql, $binds, $offset, $limit)
 *
 * @param string $sql Sql query.
 * @param array $binds Array of binds.
 * @param int $offset Offset the of the first row to return, starting from 0.
 * @param int $limit Limit rows count.
 *
 * @return Result
 * @throws SqlQueryException
 */
public function query($sql)
{
	list($sql, $binds, $offset, $limit) = self::parseQueryFunctionArgs(func_get_args());

	if($limit > 0)
	{
		$sql = $this->getSqlHelper()->getTopSql($sql, $limit, $offset);
	}

	$trackerQuery = null;

	if ($this->queryExecutingEnabled)
	{
		$connection = MainApplication::getInstance()->getConnectionPool()->getSlaveConnection($sql);
		if($connection === null)
		{
			$connection = $this;
		}

		if ($this->trackSql)
		{
			$trackerQuery = $this->sqlTracker->getNewTrackerQuery();
			$trackerQuery->setNode($connection->getNodeId());
		}

		$result = $connection->queryInternal($sql, $binds, $trackerQuery);
	}
	else
	{
		if ($this->disabledQueryExecutingDump === null)
		{
			$this->disabledQueryExecutingDump = array();
		}

		$this->disabledQueryExecutingDump[] = $sql;
		$result = true;
	}

	return $this->createResult($result, $trackerQuery);
}