2014-01-17 63 views
0

是否有可能從當前查詢中使用pdo php或postgresql中的普通sql獲取表名?如何從php或postgresql當前查詢中獲取表名

在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 

回奇怪的值。我很想獲取沒有別名的表的基名。任何人都知道更好的方式來獲取實際查詢的表名稱?

更新貓王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,司機:decl_type,標誌,名稱,表,LEN,精度,pdo_type

哪裏是我的結果標誌和表密鑰?

我需要這個值,因爲我是在我的小框架工作,我想實現模型類特殊returnig函數與結果執行查詢。我在想如果我不能從pdo得到這個值我不能在正常查詢中得到這個值。等SHOW TABLES或類似的東西。

+0

像Zend_Db_Select這樣的查詢生成器會在PDO沒有提供該信息時存儲這些信息。 –

+0

如果您的查詢涉及多個表,對於任何非平凡的查詢(聯合,聯接,子查詢等)都是如此,您希望得到什麼? –

+0

但在查詢上面我不使用任何連接只有SELECT .... FROM configuration.application(schema.table) – ZiupeX

回答

0

如果你編寫查詢,你已經有表名,爲什麼你想要它從查詢中解析?

反正,來回答你的問題PDOStatement::getColumnMeta()實際工作返回table信息

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

你得到了什麼奇怪的價值觀呢?

+0

我更新了我的帖子,以回答上面的答案檢查;) – ZiupeX

相關問題