2015-07-13 54 views
1

我想將我的代碼從mysql升級到pdo。當我將mysql_name_field更改爲等效的pdo時。我堅持下來。檢查我的舊代碼。mysql_field_name相當於pdo

這是管理數據類:數據類

$result=$this->query($query); 
$x=$this->cols_count($result); 
$heading[]=$this->column_name($result); 
print_r($heading);die(); 

和列名的功能。管理數據類繼承數據類。請參閱列名稱功能。

function column_name($result) { 
    $row=$this->stmt->getColumnMeta($result); 
    return $row; 
} 

它只返回一個列名,而我想要表中的所有列名。

+0

爲什麼不使用第一個結果行中的鍵?請解釋一下 – mario

+0

。我沒有明白你的觀點。 –

回答

2

getColumnMeta()返回結果集中列的元數據(結果中爲0索引的列)。另外,從文檔:

警告 此功能是實驗性的。在將來的PHP版本中,此函數,其名稱和周圍文檔的行爲可能會在未經通知的情況下發生變化。應該使用此功能,風險自負。

警告 並非所有PDO驅動程序支持PDOStatement對象:: getColumnMeta()

是什麼使得它不是一個很好的辦法。相反,您可以使用查詢「SHOW COLUMNS from table」並檢索所有列信息。另外,如果你仍然想使用getColumnMeta()

function column_name() { 
    $results = $this->query('SELECT * FROM table LIMIT 0'); 
    for ($i = 0; $i < $results->columnCount(); $i++) { 
     $col = $results->getColumnMeta($i); 
     $columns[] = $col['name']; 
    } 
    return columns; 
} 

不能現在來測試,但我認爲它會給一些想法。希望它有幫助,