Як виконати sql запит в bitrix
Блог> Bitrix> Як виконати SQL запит в Bitrix
Отримання даних за допомогою методів в системі бітрікс досить поширена практика, і дійсно існують безліч методів, які здійснюють самостійну вибірку даних з бази. Ми ж передаємо деякі параметри методу, у вигляді масиву, такі, наприклад, як параметри сортування, фільтру, вибірки і так далі. Але як бути, якщо є необхідність виконати 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 Бітрікс. В даному прикладі спробуємо відновити записи елемента інформаційного блоку.
Якщо ви заглядали в структуру таблиць баз даних системи bitrix, то, напевно, вже здогадалися, що в таблиці b_iblock_element містяться базові поля елементів Інфоблоки. Даний запит оновить значення деяких полів елемента, у якого ID = 7899822. Таким же чином можна виконувати і інші SQL запити в базу, а саме головне не перестаратися і не зробити так, щоб від подібного впливу з'явилося некоректне роботи самої системи бітрікс. На цьому все, успіхів!