Skip to content

table format

Oleg Grigoriev edited this page Mar 27, 2016 · 1 revision

Формат ?table

Этот формат указания имени таблицы используется в:

  • Плейсхолдерах ?t и ?table.
  • Внутри формата COLS.
  • В объекте Table.

Строка

Просто имя таблицы. К нему добавляется префикс.

$table = 'test';

$pattern = 'DROP TABLE ?table';
$data = [$table];
DROP TABLE `test`;

Порядковый массив

Список компонентов пути к таблице (обычно, это база.таблица, в некоторых базах может быть ещё схема и т.п).

$table = ['dbname', 'test'];

$pattern = 'DROP TABLE ?table';
$data = [$table];
DROP TABLE `dbname`.`test`;

Размер массива не ограничен. Префикс добавляется к последнему компоненту.

Ассоциативный массив

Поля:

  • db (string) - имя БД (необязательно)
  • table (string) - имя таблицы
$table = [
    'db' => 'dbname', 
    'table' => 'test',
];

$pattern = 'DROP TABLE ?table';
$data = [$table];
DROP TABLE `dbname`.`test`;

Размер массива не ограничен. Префикс добавляется к table.

Объект Table

При создании объекта Table можно указать вместо имени таблицы не строку, а вышеописанный массив.

$table = $db->getTable(['dbname', 'test']);

$table->delete();
DELETE FROM `dbname`.`test` WHERE 1=1