Як відомо система бітрікс має 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». В іншому випадку метод перериває виконання сторінки, виконуючи перед цим наступні дії:

  • Виклик функції AddMessage2Log.
  • Якщо поточний користувач є адміністратором сайту, або у файлі /bitrix/php_interface/dbconn.php була ініціалізована змінна $DBDebug=true;, то на екран буде виведений повний текст помилки, в іншому випадку буде викликана функція SendError.
  • Буде підключений файл /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 “;
    }
    Додав: htmaker, 04.06.2015 р.
    (1 голосів, середній: 4,00 з 5)

    Завантаження…

    Діліться з друзями:

    См. також:


    Налаштування часу у VMBitrix
    Рубрика: Bitrix, Linux

    Видалення «кинутих» кошиків в системі Бітрікс
    Рубрика: Bitrix

    Використання highload-блоків в Bitrix
    Рубрика: Bitrix

    Як виконати SQL запит в Bitrix
    Рубрика: Bitrix

    Як підрахувати кількість елементів в Bitrix?
    Рубрика: Bitrix

    Динамічне масштабування зображень в Bitrix
    Рубрика: Bitrix

    Виключаємо користувача з ID=1 групи адміністраторів в Bitrix
    Рубрика: Bitrix

    Як скинути пароль адміністратора у Bitrix?
    Рубрика: Bitrix

    Робота з параметрами модулів зберігаються в базі
    Рубрика: Bitrix