php pdo:获取表的列名

2022-08-30 10:13:52

如何使用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
    ...

)

答案 1

我通过以下方式解决问题(仅限MySQL)

$q = $dbh->prepare("DESCRIBE tablename");
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);

答案 2

这将适用于MySQL,Postgres,以及可能使用该子句的任何其他PDO驱动程序。LIMIT

添加了一些通知以提高性能:LIMIT 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);

推荐