如何使用PDO从表中获取所有列名?
id name age
1 Alan 35
2 Alex 52
3 Amy 15
Run Code Online (Sandbox Code Playgroud)
我想要的信息是,
id name age
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我的尝试,
$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);
Run Code Online (Sandbox Code Playgroud)
然后我明白了,
Array
(
[0] => id
[1] => name
[2] => age
...
)
Run Code Online (Sandbox Code Playgroud)
Jes*_*sen 90
我通过以下方式解决问题(仅限MySQL)
$q = $dbh->prepare("DESCRIBE tablename");
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);
Run Code Online (Sandbox Code Playgroud)
小智 31
这适用于MySQL,Postgres,以及可能使用该LIMIT
子句的任何其他PDO驱动程序.
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);
Run Code Online (Sandbox Code Playgroud)
rag*_*nar 21
我的2美分:
$result = $db->query('select * from table limit 1');
$fields = array_keys($result->fetch(PDO::FETCH_ASSOC));
Run Code Online (Sandbox Code Playgroud)
并且您将在var $字段中将列名称作为数组.
Pra*_*pta 12
$ sql ="select table_schema.columns中的column_name,其中table_name ='myTable'";
PHP函数学分:http://www.sitepoint.com/forums/php-application-design-147/get-pdo-column-name-easy-way-559336.html
function getColumnNames(){
$sql = "select column_name from information_schema.columns where table_name = 'myTable'";
#$sql = 'SHOW COLUMNS FROM ' . $this->table;
$stmt = $this->connection->prepare($sql);
try {
if($stmt->execute()){
$raw_column_data = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($raw_column_data as $outer_key => $array){
foreach($array as $inner_key => $value){
if (!(int)$inner_key){
$this->column_names[] = $value;
}
}
}
}
return $this->column_names;
} catch (Exception $e){
return $e->getMessage(); //return exception
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
98853 次 |
最近记录: |