Создание плагина 2 часть

В этой части разберем содержимое файла includes\functions\database.php участвующее при создании собственного плагина.

Этот файл реализует базовые и расширенные функции для взаимодействия с базой данных в системе Spruton Studio . Вот основные моменты:

Поддерживаемые функции

Функция
Описание
db_connect()
Устанавливает соединение с БД, настраивает кодировку и параметры подключения
db_close()
Закрывает соединение
db_query()
Выполняет SQL-запрос, логирует ошибки и время выполнения
db_fetch_array()
Возвращает результат запроса в виде ассоциативного массива
db_fetch()
Возвращает результат в виде объекта
db_perform()
Универсальная функция для INSERT и UPDATE
db_insert_id()
Возвращает ID последней вставленной записи
db_input()/db_prepare_input()
Экранируют данные от SQL-инъекций и очищают входящие значения
db_count(),db_find(),db_delete_row()
Удобные методы для частых операций

Полезные детали

  • Используется utf8mb4 , что поддерживает полноценную работу с Unicode (включая эмодзи).
  • Все SQL-запросы оборачиваются в try/catch для обработки исключений.
  • Есть логирование медленных/тяжёлых запросов.
  • Есть защита от SQL-инъекций через mysqli_real_escape_string.
  • Используется HTML Purifier при обработке HTML-контента (db_prepare_html_input()).

Пример использования функций

1. Подключение к БД

db_connect();

2. Выполнение простого запроса

$result = db_query(«SELECT * FROM app_entity_1 WHERE id=’123′»);
$row = db_fetch_array($result);
echo $row[‘name’];

3. Добавление новой записи

$data = array(
‘name’ => db_input(‘Новое имя’),
‘created_at’ => ‘now()’
);
db_perform(‘app_entity_1’, $data, ‘insert’);

4. Обновление записи

$data = array(
‘name’ => db_input(‘Обновлённое имя’)
);
db_perform(‘app_entity_1’, $data, ‘update’, «id=’123′»);

5. Получить запись по ID

$user_info = db_find(‘app_entity_1’, 123);
echo $user_info[‘name’];

Рекомендации при работе с плагинами

При создании своего плагина:

  • Используйтеdb_input() для экранирования любых переменных перед вставкой в SQL.
  • Избегайте ручного формирования запросов — используйтеdb_perform() для стандартных операций.
  • Логируй ошибки или используй механизм исключений, если нужно.
  • Для выборки используйтеdb_fetch_array() или db_fetch() в зависимости от нужного формата данных.

Ваш вопрос решен?

Похожие статьи