PHP で PDO を使用して列名を取得する
PHP データ オブジェクト (PDO) を使用して、指定されたテーブルから列名を取得するにはどうすればよいですか?次のテーブルについて考えてみましょう。
id | name | age |
---|---|---|
1 | Alan | 35 |
2 | Alex | 52 |
3 | Amy | 15 |
私たちの目的は、列名を取得することです。
| ID |名前 | 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 中国語 Web サイトの他の関連記事を参照してください。