PDOStatement :: getColumnMeta返回原始表名而不是视图名

Chu*_*ess 9 php mysql pdo cakephp-2.1

我正在使用CakePHP框架.返回查询结果时,框架会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
  )
)
Run Code Online (Sandbox Code Playgroud)

构建结果的方式来自于结果PDOStatment::getColumnMeta.以下是示例结果getColumnMeta:

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

    [table] => MyInstall
    [name] => id
    [len] => 108
    [precision] => 0
)
Run Code Online (Sandbox Code Playgroud)

有关如何使用PDO for MySQL获取相同信息的任何建议?或者是否有另一种解决这个问题的方法?

顺便说一下:我已经 PHP人员提交了一个错误.

Ran*_*eed 2

事实证明,这是 MySQL 中的一个已知错误:http://bugs.mysql.com/bug.php? id=66794,在撰写本文时仍悬而未决。