- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/db/mysqlidbconnection.php
- Класс: BitrixMainDBMysqliDbConnection
- Вызов: MysqliDbConnection::queryInternal
protected function queryInternal($sql, array $arBinds = null, $offset = 0, $limit = 0, BitrixMainDiagSqlTrackerQuery $trackerQuery = null)
{
$this->connectInternal();
$offset = intval($offset);
$limit = intval($limit);
if ($offset > 0 && $limit <= 0)
throw new BitrixMainArgumentException("Limit should be set if offset is set");
if ($limit > 0)
{
if (preg_match("#\slimit\s+\d#i", $sql))
throw new BitrixMainArgumentException("Duplicate limit settings");
$sql .= "nLIMIT ".intval($offset).", ".intval($limit)."n";
}
if ($trackerQuery != null)
$trackerQuery->startQuery($sql, $arBinds);
/** @var $con mysqli */
$con = $this->resource;
$result = $con->query($sql, MYSQLI_STORE_RESULT);
if ($trackerQuery != null)
$trackerQuery->finishQuery();
$this->lastQueryResult = $result;
if (!$result)
throw new SqlException('Mysql query error', $this->getErrorMessage());
return $result;
}