Документация для разработчиков

Query

mixed
CDatabase::Query(
 string sql,
 bool ignore_errors=false,
 string error_position="",
 array Options=array() 
)

Метод выполняет запрос к базе данных и если не произошло ошибки возвращает результат. В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".
Если произошла ошибка и параметр ignore_errors равен "false", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:

  1. Вызов функции AddMessage2Log.
  2. Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
  3. Будет подключен файл /bitrix/php_interface/dbquery_error.php, если он не существует, то будет подключен файл /bitrix/modules/main/include/dbquery_error.php

Примечания для Oracle версии:
1. При возникновении ошибки, если была открыта транзакция, то выполняется CDataBase::Rollback.
2. Для вставки текстовых полей типа BLOB, CLOB, LONG и т.п. (длинною больше 4000 символов), воспользуйтесь методом CDatabase::QueryBind.
3. Если при выполнении SQL-запроса типа "SELECT" требуется связывание переменных, то воспользуйтесь методом CDatabase::QueryBindSelect.

Нестатический метод.

Аналог метода в новом ядре D7 - Bitrix\Main\DB\Connection::query .

Параметры

ПараметрОписание С версии
sql SQL запрос.
ignore_errors Игнорировать ошибки. Если true, то в случае ошибки функция возвращает "false". Если параметр ignore_errors равен "false", то в случае ошибки функция прекращает выполнение всей страницы.
Необязательный. По умолчанию - "false".
error_position Строка идентифицирующая позицию в коде, откуда была вызвана данная функция CDatabase::Query. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос. Необязательный.
Options Необязательный.9.5.10

См. также

Примеры использования

<?
function GetByID($ID, $GET_BY_SID="N")
{
	$err_mess = (CForm::err_mess())."<br>Function: GetByID<br>Line: ";
	global $DB;
	$where = ($GET_BY_SID=="N") ? " F.ID = '".intval($ID)."' " : " F.VARNAME='".$DB->ForSql($ID,50)."' ";
	$strSql = "
		SELECT
			F.*,
			F.FIRST_SITE_ID,
			F.FIRST_SITE_ID									LID,
			F.VARNAME,
			F.VARNAME										SID,
			".$DB->DateToCharFunction("F.TIMESTAMP_X")."	TIMESTAMP_X,
			count(distinct D1.ID)							C_FIELDS,
			count(distinct D2.ID)							QUESTIONS,
			count(distinct S.ID)							STATUSES
		FROM b_form F
		LEFT JOIN b_form_status S ON (S.FORM_ID = F.ID)
		LEFT JOIN b_form_field D1 ON (D1.FORM_ID = F.ID and D1.ADDITIONAL='Y')
		LEFT JOIN b_form_field D2 ON (D2.FORM_ID = F.ID and D2.ADDITIONAL<>'Y')
		WHERE 
			$where
		GROUP BY 
			F.ID
		";
	$res = $DB->Query($strSql, false, $err_mess.__LINE__);
	return $res;
}
?>


© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх