Отримання даних за допомогою методів в системі бітрікс досить поширена практика, і справді існують безліч методів, які здійснюють самостійну вибірку даних з бази. Ми ж передаємо деякі параметри методу, у вигляді масиву, такі, наприклад, як параметри сортування, фільтр, вибірки і так далі. Але як бути, якщо є необхідність виконати SQL запит самому. Скажімо вам з якихось причин не підходить жоден метод для роботи з даними, і ви вирішили реалізувати свої запити безпосередньо в базу. Як не дивно, але для цього є так само API, а точніше метод, який дозволить виконати подібні запити в базу, що теж зручно. Т. к. підключення до бази та інші попередні дії, при роботі сервером бази даних виконує за вас бітрікс сам.

Щоб виконати запити до бази даних в Bitrix, можна скористатися методом CDatabase::Query. Даний метод у разі успішного виконання повертає об’єкт класу CDBResult. Згідно синтаксису використання методу, регламентований документації метод може приймати чотири параметри, далі по порядку.

sql – SQL запит, який слід виконати, є обов’язковим параметром;
ignore_errors – Ігнорування помилок, у випадку, якщо параметр встановлено в значення «true», то при виникненні помилок, метод поверне в якості результату – false. В іншому випадку у разі виникнення помилки буде припиняти виконання всього скрипта. Параметр необов’язковий.
error_position – Рядок, що визначає позицію в коді де зверталися до методу CDatabase::Query. У разі виникнення помилки виконання SQL-запиту, і наявність встановленої змінної $DBDebug=true у файлі /bitrix/php_inerface/dbconn.php, буде відображена інформація, а так само сам SQL запит. Параметр є необов’язковим.
Options – Додаткові опції, детально про це параметрі в документації на даний момент немає інформації. Є необов’язковим параметром.
Тепер давайте розглянемо простий приклад SQL запиту. Першим ділом до скрипту нам необхідно підключити API битрикса. В даному прикладі спробуємо оновити записи елемента інформаційного блоку.

// підключення API Bitrix
require_once($_SERVER[‘DOCUMENT_ROOT’].”/bitrix/modules/main/include/prolog_before.php”);
global $DB;
$res = $DB->Query(
“UPDATE b_iblock_element SET
`PREVIEW_PICTURE` = ‘1755’,
`DETAIL_PICTURE` = ‘1755’,
`PREVIEW_TEXT` = ‘Текст для анонсу’,
`DETAIL_TEXT` = ‘Текст для детального опису’,
`PREVIEW_TEXT_TYPE` = ‘text’,
`DETAIL_TEXT_TYPE` = ‘text’
WHERE `ID` = ‘7899822”
);

Якщо ви заглядали в структуру таблиць баз даних системи bitrix, то, напевно, вже здогадалися, що в таблиці b_iblock_element містяться базові поля елементів инфоблока. Даний запит оновить значення деяких полів елемента, у якого ID = 7899822. Таким же чином можна виконувати і інші SQL запити до бази, а саме головне не перестаратися і не зробити так, щоб від подібного впливу з’явилося некоректне роботи самої системи бітрікс. На цьому все, успіхів!

Додав: htmaker, 18.10.2016 р.
(Ще не оцінили)

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

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

См. також:


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

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

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

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

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

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

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

SQL-запити в бітрікс
Рубрика: Bitrix

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