迷ったらコレ!PHPでMySQLテーブルのカラム名を効率的に取得する方法
PHPでMySQLテーブルのカラム名を取得する方法
PHPでMySQLデータベースのテーブルのカラム名を取得するには、いくつかの方法があります。
方法1:SHOW COLUMNS ステートメントを使う
これは最も簡単な方法です。SHOW COLUMNS
ステートメントは、指定したテーブルのカラムに関する情報をすべて返します。
<?php
// データベース接続
$mysqli = new mysqli("localhost", "user", "password", "database");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = $mysqli->query("SHOW COLUMNS FROM $table_name");
// 結果処理
while ($row = $result->fetch_assoc()) {
echo $row["Field"] . "<br>";
}
// 接続を閉じる
$mysqli->close();
?>
方法2:INFORMATION_SCHEMA テーブルを使う
INFORMATION_SCHEMA
データベースには、MySQLデータベースに関するメタデータが格納されています。COLUMNS
テーブルには、すべてのテーブルのカラムに関する情報が格納されています。
<?php
// データベース接続
$mysqli = new mysqli("localhost", "user", "password", "database");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = $mysqli->query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table_name'");
// 結果処理
while ($row = $result->fetch_assoc()) {
echo $row["COLUMN_NAME"] . "<br>";
}
// 接続を閉じる
$mysqli->close();
?>
mysqli_fetch_field()
関数は、mysqli_query()
関数によって返される結果セットからカラム情報を取り出すために使用できます。
<?php
// データベース接続
$mysqli = new mysqli("localhost", "user", "password", "database");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = $mysqli->query("SELECT * FROM $table_name");
// カラム名を取得
$field = mysqli_fetch_field($result);
// カラム名をecho
echo $field->name . "<br>";
// 接続を閉じる
$mysqli->close();
?>
上記の方法のどれを選択しても、PHPでMySQLテーブルのカラム名を取得することができます。 自分に合った方法を選択してください。
<?php
// データベース接続
$mysqli = new mysqli("localhost", "user", "password", "database");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = $mysqli->query("SHOW COLUMNS FROM $table_name");
// 結果処理
while ($row = $result->fetch_assoc()) {
echo $row["Field"] . "<br>";
}
// 接続を閉じる
$mysqli->close();
?>
出力例
id
name
email
age
<?php
// データベース接続
$mysqli = new mysqli("localhost", "user", "password", "database");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = $mysqli->query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table_name'");
// 結果処理
while ($row = $result->fetch_assoc()) {
echo $row["COLUMN_NAME"] . "<br>";
}
// 接続を閉じる
$mysqli->close();
?>
id
name
email
age
方法3:mysqli_fetch_field() 関数を使う
<?php
// データベース接続
$mysqli = new mysqli("localhost", "user", "password", "database");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = $mysqli->query("SELECT * FROM $table_name");
// カラム名を取得
$field = mysqli_fetch_field($result);
// カラム名をecho
echo $field->name . "<br>";
// 接続を閉じる
$mysqli->close();
?>
id
補足
- 上記のサンプルコードは、MySQLi を使用しています。PDO を使用している場合は、コードを書き換える必要があります。
- 上記のサンプルコードは、エラー処理を行っていません。本番環境で使用
<?php
// データベース接続
$link = mysql_connect("localhost", "user", "password");
// テーブル名
$table_name = "my_table";
// クエリ実行
$result = mysql_query("SELECT * FROM $table_name", $link);
// カラム名を取得
$field = mysql_fetch_field($result);
// カラム名をecho
echo $field->name . "<br>";
// 接続を閉じる
mysql_close($link);
?>
mysql_list_fields()
関数は、指定したテーブルのカラム名の一覧を取得するために使用できます。
<?php
// データベース接続
$link = mysql_connect("localhost", "user", "password");
// テーブル名
$table_name = "my_table";
// カラム名の一覧を取得
$fields = mysql_list_fields("database", $table_name);
// カラム名をecho
foreach ($fields as $field) {
echo $field->name . "<br>";
}
// 接続を閉じる
mysql_close($link);
?>
注意
mysql_
関数は非推奨です。新しいコードでは使用しないでください。mysqli_
関数を使用することを推奨します。
php sql mysql