代码之家  ›  专栏  ›  技术社区  ›  dwich

使用PHP从PostgreSQL获取所选列的元信息

  •  0
  • dwich  · 技术社区  · 15 年前

    在PHP中,postgre结果中的每一列都有一种获取表名的方法吗?

    假设您有一个select with join,例如:

    $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是否向客户端库提供此信息?要做到这一点需要做些什么?

    谢谢你的提示,

    米查尔

    1 回复  |  直到 15 年前
        1
  •  1
  •   Frank Heikens    15 年前
    推荐文章