2012-04-01 23 views
10

Tôi đang sử dụng khung công tác CakePHP. Khi trả về kết quả của một truy vấn, khung công tác gọi các "thử nghiệm" PDOStatement::getColumnMeta để "arrayify" dữ liệu khi nó trở lại từ cơ sở dữ liệu. Tuy nhiên, có kết quả hỗn hợp tùy thuộc vào truy vấn.PDOStatement :: getColumnMeta trả về tên bảng gốc thay vì tên hiển thị

Có những lúc mảng dữ liệu trở lại như mong đợi trong đó tất cả các cột được liên kết với tên của chế độ xem. Lần khác, dữ liệu được trả về hỗn hợp, trong đó một số dữ liệu nằm trong một mảng được liên kết với bảng gốc tương ứng với khung nhìn.

// 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 
) 
) 

Cách kết quả được tạo từ kết quả của PDOStatment::getColumnMeta. Đây là những gì một mẫu kết quả của getColumnMeta trông giống như:

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

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

Bất kỳ đề xuất về làm thế nào tôi có thể nhận được thông tin này cùng sử dụng PDO cho MySQL? Hoặc là có một giải pháp cho vấn đề này?

BTW: Tôi đã filed a bug với người dùng PHP về vấn đề này.

+0

Tôi phát hiện thấy sự cố này liên quan đến việc sử dụng kết hợp tên chế độ xem Bí danh được kết hợp với các vấn đề về Điều khoản ở đâu. (xem lỗi trong OP). Vẫn đang chờ phản hồi từ nhà phát triển PHP. –

Trả lời

Các vấn đề liên quan