5.1 KiB
Перечисление DBDriver
Перечисление представляет собой набор констант, определяющих типы драйверов баз данных, поддерживаемых системой. Используется совместно с библиотекой PHP PDO для идентификации различных типов СУБД.
Основная информация
- Автор: Александр Бабаев
- Версия: 1.0.2
- Дата начала поддержки: с версии 1.0
Пространство имен и зависимости
namespace goodboyalex\php_db_components_pack\enums;
use goodboyalex\php_components_pack\traits\EnumExtensionsTrait;
Возможные значения перечисления
Константа | Значение | Описание |
---|---|---|
MySQL |
0 |
Драйвер MySQL |
MSSQL |
1 |
Драйвер MS SQL Server |
PostgreSQL |
2 |
Драйвер PostgreSQL |
OracleDB |
3 |
Драйвер Oracle |
SQLite |
4 |
Драйвер SQLite |
Методы
Метод GetSigns
Метод GetSigns
предназначен для получения знаков, которыми принято заключать имена полей и таблиц в различных системах
управления базами данных (СУБД). Некоторые СУБД используют двойные кавычки "
, квадратные скобки []
, обратные
апострофы `
или другие специальные символы для экранирования идентификаторов (имен таблиц, колонок и других
объектов базы данных).
Синтаксис
public static function GetSigns(DBDriver $driver): Tuple
Аргументы
- $driver: Переменная типа
DBDriver
, указывающая на используемую СУБД (например, MySQL, PostgreSQL, SQLite и т.д.).
Возвращаемое значение
Метод возвращает кортеж Tuple
, содержащий два элемента:
- Первый элемент — знак открывающий.
- Второй элемент — знак закрывающий.
Например, для MySQL
и PostgreSQL
чаще всего возвращаются символы обратной косой черты и прямой ("``,
"``)
соответственно, а для MS SQL Server
— квадратные скобки ([
, ]
).
Пример использования
Допустим, у вас есть код, который выводит SQL-запрос с экранированием идентификатора в зависимости от используемой СУБД:
use goodboyalex\php_db_components_pack\enums\DBDriver;
// Получаем знаки для MySQL
[$open, $close] = DBDriver::GetSigns(DBDriver::MYSQL);
// Использование полученных знаков
$sql = sprintf("SELECT %s%s%s FROM users;", $open, 'username', $close);
В результате для MySQL получится:
SELECT `username`
FROM users;
Аналогично, для PostgreSQL:
SELECT "username"
FROM users;
Особенности реализации
Используется trait EnumExtensionsTrait
, предоставляющий дополнительные методы для работы с перечислениями, такие как
преобразование значений в целые числа и обратно.
Использование
Примеры использования перечисления:
use goodboyalex\php_db_components_pack\enums\DBDriver;
// Получение значения по имени
$dbType = DBDriver::MySQL;
// Проверка типа драйвера
if ($dbType === DBDriver::MySQL)
echo "Это MySQL";
Совместимость
Перечисление совместимо с современными версиями PHP, начиная с версии 8.1, поддерживающей нативные перечисления (
enum
). Если используется более ранняя версия PHP, возможно потребуется альтернативная реализация на основе классов или
сторонних пакетов.
Вывод
Этот класс является частью библиотеки goodboyalex/php_db_components_pack
и предназначен для унификации работы с
различными системами управления базами данных посредством стандартного интерфейса PDO.