在 PHP 中使用 PDO 获取列名称
如何使用 PHP 数据对象 (PDO) 从指定表中检索列名称?考虑下表:
id | name | age |
---|---|---|
1 | Alan | 35 |
2 | Alex | 52 |
3 | Amy | 15 |
我们的目标是获取列名称:
|编号 |名称 | age |
原始代码尝试:
问题中提供的代码分别使用 columnCount() 和 getColumnMeta() 方法来计数和检索列元数据。然而,这种方法检索的不仅仅是列名之外的其他信息。
使用 MySQL 特定方法的解决方案:
对于 MySQL 数据库,您可以直接查询“DESCRIBE”使用以下代码获取信息:
<code class="php">$table_fields = $dbh->query("DESCRIBE tablename")->fetchAll(PDO::FETCH_COLUMN);</code>
上述代码将返回一个包含列名称的数组:
id |
---|
name |
age |
此解决方案特定于 MySQL,不适用于其他数据库类型。对于支持所有 PDO 兼容数据库的通用解决方案,请考虑使用以下函数:
<code class="php">function get_column_names($table, $pdo) { try { $stmt = $pdo->prepare("SELECT * FROM $table LIMIT 0"); $stmt->execute(); $column_names = array_map(function ($meta) { return $meta['name']; }, $stmt->getColumnMeta()); return $column_names; } catch (Exception $e) { return false; } }</code>
以上是如何在 PHP 中使用 PDO 从表中检索列名?的详细内容。更多信息请关注PHP中文网其他相关文章!