Интеграция с MySQL и MariaDB: запись, поиск и обновление данных

Интеграция с MySQL в nana800 выполняет SQL-запрос к вашей базе MySQL или MariaDB на каждый запуск схемы: добавляет заявку, находит заказ, меняет статус. Достаточно строки подключения из панели, а значения из других блоков подставляются как данные, а не как часть команды, поэтому кавычка в тексте не ломает запрос. Каждый запрос стоит 0,20 ₽, а баланс каждый месяц бесплатно пополняется до 350 ₽.

Собрать в конструкторе
  • Запуск блока: 0,20 ₽
  • Бесплатно каждый месяц: 350 ₽
  • Карта не нужна

Что можно сделать

  • Добавлять заявки с сайта, заказы и сообщения боту строками в таблицы вашей базы
  • Находить данные по запросу: заказ по номеру, клиента по телефону или email, и передавать их дальше по схеме
  • Обновлять и удалять строки: отмечать оплату, менять статус заказа, убирать устаревшие записи
  • Получать id только что добавленной строки из таблицы с AUTO_INCREMENT, чтобы сразу использовать его в следующих блоках
  • Подставлять в запрос данные из других блоков без риска взлома через текст из формы (SQL-инъекции): блок сам обрабатывает в них кавычки и особые символы
  • Работать с MySQL и MariaDB на AWS RDS, PlanetScale, Aiven, DigitalOcean или на своём сервере, с шифрованием SSL или без него

Блоки в конструкторе

  • Запрос к базе MySQL

    Действие · 0,20 ₽ за запуск

    Выполняет одну SQL-команду к вашей базе MySQL или MariaDB: SELECT, INSERT, UPDATE, DELETE и другие. Возвращает найденные строки, число затронутых строк, id новой строки и текст ошибки, если запрос не прошёл.

Как настроить

  1. 1

    Подготовьте доступ к базе

    Возьмите в панели хостинга строку подключения вида mysql://логин:пароль@адрес:3306/имя_базы или отдельно хост, порт, имя базы, пользователя и пароль. База должна принимать подключения из интернета: база на вашем компьютере (localhost) или во внутренней сети вроде 192.168.x.x не подойдёт.

  2. 2

    Создайте схему и добавьте триггер

    В конструкторе создайте схему и поставьте триггер, который принесёт данные: «webhook» для заявок с сайта, сообщение боту в Telegram или запуск по расписанию. Для первой проверки хватит триггера «button», он запускает схему вручную.

  3. 3

    Подключите блок MySQL

    Добавьте блок «MySQL external database operation». Вставьте строку подключения целиком или заполните хост, порт, имя базы, пользователя и пароль. Режим SSL require подходит для AWS RDS, PlanetScale, Aiven и большинства облачных баз. Если на сервере нет SSL, выберите disable.

  4. 4

    Напишите SQL-запрос

    В поле «SQL запрос» напишите одну команду, например добавление строки в таблицу заявок, и на место значений подставьте поля из триггера. Текст берите в кавычки, число можно без них. Имя таблицы, если оно приходит из другого блока, оберните в обратные кавычки.

  5. 5

    Включите и проверьте схему

    Включите схему, нажмите кнопку в триггере «button» и откройте результат блока: в result лежат строки, в row_count их число, в insert_id номер новой строки, а при ошибке в error_text будет ответ базы. Когда всё работает, оставьте схему включённой. Пока она включена, она стоит 0,42 ₽ в час.

Частые вопросы

Каждый запрос к базе стоит 0,20 ₽. Включённая схема стоит 0,42 ₽ в час. Баланс каждый месяц бесплатно пополняется до 350 ₽, карта не нужна. Если схема включена круглосуточно весь месяц, большая часть этой суммы уходит на часы работы схемы.

MariaDB подключается тем же блоком, строка подключения может начинаться с mysql:// или mariadb://. База на хостинге подойдёт, если она принимает внешние подключения из интернета. Базы, доступные только с самого сервера через localhost, блок не видит.

Нет. Блок подключается только к базам с публичным адресом: localhost, адреса 10.x.x.x, 172.16.x.x - 172.31.x.x, 192.168.x.x и имена вроде .local заблокированы. Если база стоит в офисе или в закрытой сети провайдера, откройте к ней доступ из интернета или перенесите её в облако.

Да. Блок сам обрабатывает кавычки и особые символы в каждом значении из других блоков и подставляет его как данные, а не как часть команды. Кавычка или точка с запятой в имени клиента не сломает запрос и не выполнит лишнюю команду. Пароль от базы скрыт от читателей проекта и не попадает в логи.

За один запуск блок выполняет одну SQL-команду. Если запрос идёт дольше 15 секунд, блок его прерывает, а подключения ждёт до 10 секунд. Для больших выборок ставьте LIMIT, чтобы не тянуть лишние строки дальше по схеме.

Если у таблицы есть колонка с AUTO_INCREMENT, после INSERT блок кладёт номер новой строки в insert_id. Его можно сразу подставить в следующий блок, например в сообщение менеджеру с номером заявки.

Соберите первую схему бесплатно

Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.

Собрать в конструкторе