如何使用PDO从表中获取所有列名?
id name age
1 Alan 35
2 Alex 52
3 Amy 15
我想要的信息是,
id name age
编辑:
这是我的尝试,
$db = $connection->get_connection();
$select = $db->query('SELECT * FROM contacts');
$total_column = $select->columnCount();
var_dump($total_column);
for ($counter = 0; $counter < $total_column; $counter ++) {
$meta = $select->getColumnMeta($counter);
$column[] = $meta['name'];
}
print_r($column);
然后我得到,
Array
(
[0] => id
[1] => name
[2] => age
...
)
我用以下方法解决这个问题(仅限MySQL)
$q = $dbh->prepare("DESCRIBE tablename");
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);
这将适用于MySQL,Postgres,可能还有任何其他使用limit
子句的PDO驱动程序。
注意:添加限制0
是为了提高性能:
$rs = $db->query('SELECT * FROM my_table LIMIT 0');
for ($i = 0; $i < $rs->columnCount(); $i++) {
$col = $rs->getColumnMeta($i);
$columns[] = $col['name'];
}
print_r($columns);
我的2美分:
$result = $db->query('select * from table limit 1');
$fields = array_keys($result->fetch(PDO::FETCH_ASSOC));
您将在var$字段中以数组形式获得列名。