PDOでテーブルのカラム名を取得するSQL文

PDOで、挿入されたデータではなく、テーブルのカラム名を取得する方法をまとめました。

管理者しか触れない管理画面などを作成する時に必要なシーンがあるので、一応知っておきましょう。

今回はサンプルで下記のテーブルを使用します。

table名:doraemon_users
id name gender type
1 のび太 man human
2 ドラえもん man robot
3 ジャイアン man human
4 スネ夫 man human
5 しずか woman human
6 ドラミ woman robot

テーブルをカラムを取得するSQLクエリ

カラム名だけ取得したい場合

カラム名だけの取得で良い場合は、fetchAll(PDO::FETCH_COLUMN)の記述を使用します。

参考 【PHP】PDOのfetchで取得できる配列パターン一覧

サンプルコード
$sql = "SHOW COLUMNS FROM doraemon_users";
$sth = $pdo -> query($sql);
$aryColumn = $sth -> fetchAll(PDO::FETCH_COLUMN);

print_r($aryColumn);
Array
(
    [0] => id
    [1] => name
    [2] => gender
    [3] => type
)

すべてのデータを取得したい場合

型やサイズなど、カラムの各種設定も取得したい場合はfetchAll(PDO::FETCH_ASSOC)を使用します。

サンプルコード
$sql = "SHOW COLUMNS FROM doraemon_users";
$sth = $pdo -> query($sql);
$aryColumn = $sth -> fetchAll(PDO::FETCH_ASSOC);

print_r($aryColumn);
Array
(
    [0] => Array
        (
            [Field] => id
            [Type] => int(11)
            [Null] => NO
            [Key] => 
            [Default] => 0
            [Extra] => 
        )

    [1] => Array
        (
            [Field] => name
            [Type] => varchar(32)
            [Null] => YES
            [Key] => 
            [Default] => 
            [Extra] => 
        )

    [2] => Array
        (
            [Field] => gender
            [Type] => varchar(16)
            [Null] => YES
            [Key] => 
            [Default] => 
            [Extra] => 
        )

    [3] => Array
        (
            [Field] => type
            [Type] => varchar(16)
            [Null] => YES
            [Key] => 
            [Default] => 
            [Extra] => 
        )

)

以上、PDOでテーブルのカラム名を取得するSQL文、でした。

PHP