Query
Описание и параметры
mixed CDatabase::Query( string sql, bool ignore_errors=false, string error_position="", array Options=array() )
Метод выполняет запрос к базе данных и если не произошло ошибки возвращает результат. В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".
Если произошла ошибка и параметр ignore_errors равен "false", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:
- Вызов функции AddMessage2Log.
- Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
- Будет подключен файл /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; } ?>