2011-12-07 21 views
5

Với phần mở rộng mysqli cho PHP, tôi có thể sử dụng phương thức fetch_field() để lấy tên ban đầu (không được đặt) cho các cột và bảng thông qua kết quả là orgnameorgtable. PDO cung cấp phương thức getColumnMeta(), nhưng không cung cấp thông tin về tên bảng và cột ban đầu; nó chỉ trả về bí danh.Cách lấy tên bảng/cột ban đầu khi sử dụng PDO?

Có cách nào khác để nhận thông tin này với PDO không? Tôi đã suy nghĩ về phân tích các thông tin từ SQL truy vấn, nhưng tôi hy vọng có những giải pháp đẹp ...

SELECT id AS col1, session AS col2 FROM sessions AS table1; 

Kết quả sử dụng PDOStatement::getColumnMeta():

Array 
(
    [native_type] => LONG 
    [flags] => Array 
     (
      [0] => not_null 
      [1] => primary_key 
     ) 

    [table] => table1 
    [name] => col1 
    [len] => 10 
    [precision] => 0 
    [pdo_type] => 2 
) 
Array 
(
    [native_type] => VAR_STRING 
    [flags] => Array 
     (
      [0] => not_null 
      [1] => unique_key 
     ) 

    [table] => table1 
    [name] => col2 
    [len] => 32 
    [precision] => 0 
    [pdo_type] => 2 
) 
+0

Theo tài liệu, kết quả gọi ['PDOStatement.getColumnMeta'] (http://php.net/PDOStatement.getColumnMeta) bao gồm cột 'bảng' chứa" [t] tên của bảng của cột này được trả về bởi cơ sở dữ liệu. " Đây không phải là những gì bạn đã thấy trong thực tế? – outis

+0

Tôi đã thêm kết quả vào bài viết của mình! –

+0

Trân trọng !!! –

Trả lời

0

Bạn có thể sử dụng phương pháp fetch

while ($row = $stmt->fetch()) { 
     var_dump($row); 
    }