Получить метаинформацию для выбранных столбцов из PostgreSQL, используя PHP - PullRequest
0 голосов
/ 15 ноября 2010

Есть ли способ получить имя таблицы для каждого столбца в результате postgre в PHP?

Представьте, что у вас есть выбор с объединением, например:

$Q = <<<E2OD
    SELECT * FROM user U
    LEFT JOIN department D ON U.department_id = D.id
E2OD;

В PHP / FirebirdSQL:

$R = ibase_query($Q);
$D = ibase_fetch_row($R);
$info = ibase_field_info($R, 0);

Возвращает

Array
(
    [0] => id
    [name] => id
    [1] => id
    [alias] => id
    [2] => user
    [relation] => user
    [3] => 8
    [length] => 8
    [4] => BIGINT
    [type] => BIGINT
)

В PHP / PostgreSQL:

$select = $DB->query($Q);
$meta = $select->getColumnMeta(0);

Возвращает

Array
(
    [pgsql:oid] => 20
    [native_type] => int8
    [name] => id
    [len] => 8
    [precision] => -1
    [pdo_type] => 2
)

Как видите, нет информации о таблице, из которой столбец. Отсутствует ключ [relation] => user или аналогичный, отображающий имя таблицы.

http://php.net/manual/en/pdostatement.getcolumnmeta.php

Может ли PHP получить эту информацию с помощью своих библиотек PG или PDO? Предоставляет ли PostgreSQL эту информацию клиентским библиотекам? Что нужно сделать, чтобы это произошло?

Спасибо за любую подсказку,

Michal

1 Ответ

1 голос
/ 15 ноября 2010

Проверка pg_field_table () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...