- Модуль: 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);
}