如何从php或postgresql中的当前查询获取表名

时间:2014-01-17 15:32:52

标签: php mysql sql postgresql pdo

是否可以使用pdo php或postgresql中的普通sql从当前查询中获取表名?

在pdo php中,一个函数就像PDOStatement::getColumnMeta一样存在,但是这个函数效果不好,因为它在查询中返回别名,当我使用符号

SELECT configuration.id AS other_name
FROM   configuration.mytable AS other_table_name
INNER JOIN  configuration.some_table AS other_some_table_name
ON other_table_name.id = other_some_table_name.id
它回到了奇怪的价值观。我有兴趣获得没有别名的表的基本名称。有人知道更好的方法来获取实际查询的表名吗?

Elvis Ciotii回复的更新

这是sql:

    SELECT        *
    FROM           configuration.applications
    WHERE        url=:url

这是结果

      Array
            (
                [pgsql:oid] => 23
                [native_type] => int4
                [name] => id
                [len] => 4
                [precision] => -1
                [pdo_type] => 1
            )
文档中的

php.net函数PDOStatement :: getColumnMeta()返回一个关联数组,其中包含表示单个列的元数据的以下值:

native_type,driver:decl_type,flags,name,table,len,precision,pdo_type

我的结果标志和表键在哪里?

我需要这个值,因为我正在我的小框架中工作,我想要实现模型类特殊returnig函数与结果执行查询。我在想如果我不能从pdo得到这个值我不能在普通查询中得到这个值。等。显示表格或类似的东西。

1 个答案:

答案 0 :(得分:0)

如果您撰写查询,您已经拥有了表名,为什么要从查询中解析?

无论如何,回答你的问题PDOStatement::getColumnMeta()确实会返回table信息

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

你会得到什么奇怪的价值?