2012-04-01 60 views
10

我正在使用CakePHP框架。當返回查詢結果時,框架調用「實驗性」PDOStatement::getColumnMeta以在數據從數據庫返回時「陣列化」數據。但是,取決於查詢有混合結果。PDOStatement :: getColumnMeta返回原始表名而不是視圖名

有時候數據數組回到了預期的位置,其中所有列都與視圖的名稱相關聯。其他時候,數據會混合起來,其中一些數據位於與對應於視圖的原始表關聯的數組中。

// correct 
Array(
[MyInstall] => Array 
    (
     [id] => a6d1342a-7b4d-11e1-8397-60195b7d6275 
     [user_id] => dc038c9e-7b4b-11e1-8397-60195b7d6275 
     [script_id] => 057de1e0-7b48-11e1-8397-60195b7d6275 
     [path] => 
     [url] => 
     [created] => 2009-06-15 12:43:30 
     [version] => 3.2.1 
     [admin_url] => wp-admin 
     [name] => WordPress 
     [icon] => icon_WordPress.gif 
    ) 
) 

//incorrect 
Array(
[MyInstall] => Array 
    (
     [id] => c71a2368-7b4d-11e1-8397-60195b7d6275 
     [user_id] => dc038c9e-7b4b-11e1-8397-60195b7d6275 
     [path] => 
     [url] => 
     [created] => 2011-11-07 22:26:38 
     [version] => 3.2.1 
     [admin_url] => wp-admin 
) 

[Script] => Array 
    (
     [script_id] => 057de1e0-7b48-11e1-8397-60195b7d6275 
     [name] => WordPress 
     [icon] => icon_WordPress.gif 
) 
) 

結果建立的方式來自PDOStatment::getColumnMeta的結果。這裏是什麼getColumnMeta樣本結果如下:

Array 
(
    [native_type] => STRING 
    [pdo_type] => 2 
    [flags] => Array 
     (
      [0] => not_null 
     ) 

    [table] => MyInstall 
    [name] => id 
    [len] => 108 
    [precision] => 0 
) 

我如何能獲得使用PDO的MySQL相同的信息有什麼建議?或者有另一種解決這個問題的方法嗎?

BTW:我已經filed a bug與PHP的人在這個。

+0

我發現此問題與使用視圖名稱別名和Where子句問題的組合相關。 (請參閱OP中的錯誤)。仍在等待PHP開發人員的響應。 – 2012-04-03 16:30:49

回答

相關問題