Middle База данных Обязательно

Подключения к базе

Соединение с базой данных конфигурируется в секции connections файла .settings.php, где задаются параметры драйвера, флаги отложенного подключения и кодировка utf8mb4. Платформа поддерживает работу с несколькими базами через именованные подключения (Application::getConnection('name')), однако транзакции всегда изолированы в рамках одного конкретного соединения.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    Настройки в .settings.php
  • 2
    Несколько подключений
  • 3
    Кодировка и коллация

Материалы

Официальная документация

Проверь себя

После переезда на новый сервер в отзывах вместо emoji вопросительные знаки, хотя дамп снят в utf8mb4 и PHP в UTF-8. Где искать?

В кодировке соединения, а не базы: ключ charset подключения в .settings.php и SQL-команды в /bitrix/php_interface/after_connect_d7.php. Старый SET NAMES utf8 там переключает соединение в трёхбайтовый utf8, и четырёхбайтовые символы теряются при записи.

Чем options => 2 у подключения отличается от 0 и когда это заметно?

2 — Connection::DEFERRED: соединение устанавливается при первом запросе, а не при создании объекта. При 0 ядро подключается сразу. Заметно на ошибке подключения: с DEFERRED она вылетает там, где выполнился первый запрос.

Сущность аналитики привязана ко второму подключению. Почему транзакция на default не откатывает её изменения?

Транзакция живёт в пределах одного соединения. DataManager::getConnectionName() отправляет запросы сущности в другое, и startTransaction() на default его не касается. Открывать транзакцию нужно на том Connection, куда пишет сущность.

Зачем readonly => true у секции connections, если файл и так лежит вне веб-доступа?

Флаг запрещает менять параметры секции во время выполнения через Configuration::setValue(). Без него любой код на хите может подменить хост или логин, и это никак не залогируется.

Не сходится?

Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти