7323 Андрей Барткевич 3 Декабря 2016



SQL запросы в битрикс

Как известно система битрикс имеет API через которое подавляющая часть компонентов на сайте взаимодействует с данными. За простоту и удобство в некоторых ситуациях приходиться жертвовать производительностью. Однако имея некий опыт в программировании, и зная синтаксис языка запросов к базе данных, есть возможность так же взаимодействовать с базой данных путем произвольных запросов. Тут конечно можно наделать делов, поэтому просьба быть с вашими данными крайне аккуратно.
Для заботы с базой данных в системе битрикс есть класс CDatabase. При каждой загрузке страницы автоматически создается переменная $DB, содержащая глобальный объект, который является объектом класса CDatabase. Используя этот объект можно проводить все действия с базой данных.
Класс для работы с базой данных содержит множество методов, один из них мы рассмотрим тут.

Метод CDatabase::Query

Метод выполняет запрос к базе данных и в случае успешного выполнения возвращает результат в виде объекта класса CDBResult.
Синтаксис:
mixed
CDatabase::Query(
 string sql,
 bool ignore_errors=false,
 string error_position="",
 array Options=array() 
) 

Параметры:

  • 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
Если параметр ignore_errors равен «true», и возникла ошибка при запросе, то метод вернет «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

Пример запроса:

 
global $DB;
$results = $DB->Query("SELECT `VALUE` FROM `b_option` WHERE `NAME` LIKE 'email_from'");
while($row = $results->Fetch()){
    echo '
'; print_r($row); echo '
'; }

Рейтинг:

Поделится с друзьями:

Вы можете оставить свой комментарий:


97

материалов о web-разработке

1345

читателей нашего блога

15

городов и стран

96

разработанных проектов