20250820 v1.0.2-b2
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
## Основная информация
|
||||
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0
|
||||
- **Версия**: 1.0.2
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Пространство имен и зависимости
|
||||
@@ -27,6 +27,64 @@ use goodboyalex\php_components_pack\traits\EnumExtensionsTrait;
|
||||
| `OracleDB` | `3` | Драйвер Oracle |
|
||||
| `SQLite` | `4` | Драйвер SQLite |
|
||||
|
||||
## Методы
|
||||
|
||||
### Метод `GetSigns`
|
||||
|
||||
Метод `GetSigns` предназначен для получения знаков, которыми принято заключать имена полей и таблиц в различных системах
|
||||
управления базами данных (СУБД). Некоторые СУБД используют двойные кавычки `"`, квадратные скобки `[]`, обратные
|
||||
апострофы `` ` `` или другие специальные символы для экранирования идентификаторов (имен таблиц, колонок и других
|
||||
объектов базы данных).
|
||||
|
||||
#### Синтаксис
|
||||
|
||||
```php
|
||||
public static function GetSigns(DBDriver $driver): Tuple
|
||||
```
|
||||
|
||||
#### Аргументы
|
||||
|
||||
- **$driver**: Переменная типа `DBDriver`, указывающая на используемую СУБД (например, MySQL, PostgreSQL, SQLite и
|
||||
т.д.).
|
||||
|
||||
#### Возвращаемое значение
|
||||
|
||||
Метод возвращает кортеж `Tuple`, содержащий два элемента:
|
||||
|
||||
- Первый элемент — знак открывающий.
|
||||
- Второй элемент — знак закрывающий.
|
||||
|
||||
Например, для `MySQL` и `PostgreSQL` чаще всего возвращаются символы обратной косой черты и прямой (```"``, ```"``)
|
||||
соответственно, а для `MS SQL Server` — квадратные скобки (`[`, `]`).
|
||||
|
||||
#### Пример использования
|
||||
|
||||
Допустим, у вас есть код, который выводит SQL-запрос с экранированием идентификатора в зависимости от используемой СУБД:
|
||||
|
||||
```php
|
||||
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 получится:
|
||||
|
||||
```sql
|
||||
SELECT `username`
|
||||
FROM users;
|
||||
```
|
||||
|
||||
Аналогично, для PostgreSQL:
|
||||
|
||||
```sql
|
||||
SELECT "username"
|
||||
FROM users;
|
||||
```
|
||||
|
||||
## Особенности реализации
|
||||
|
||||
Используется trait `EnumExtensionsTrait`, предоставляющий дополнительные методы для работы с перечислениями, такие как
|
||||
|
Reference in New Issue
Block a user