是否可以使用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得到这个值我不能在普通查询中得到这个值。等。显示表格或类似的东西。
答案 0 :(得分:0)
如果您撰写查询,您已经拥有了表名,为什么要从查询中解析?
无论如何,回答你的问题PDOStatement::getColumnMeta()
确实会返回table
信息
http://www.php.net/manual/en/pdostatement.getcolumnmeta.php
你会得到什么奇怪的价值?