mysql_fetch_field
結果からカラム情報を取得し、オブジェクトとして返す
警告
この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。
MySQLi あるいは
PDO_MySQL を使うべきです。詳細な情報は
MySQL: API の選択 を参照ください。
この関数の代替として、これらが使えます。
- mysqli_fetch_field
- PDOStatement::getColumnMeta
説明
object mysql_fetch_field(resource $result, int $field_offset = 0)
フィールド情報を含むオブジェクトを返します。特定のクエリー結果の中の
フィールドに関する情報を得るために使用可能です。
パラメータ
-
result
-
評価された結果を示す resource。この結果は、mysql_query のコールにより得られたものです。
-
field_offset
-
数字で表したフィールドの位置です。もし指定されなければ、
まだこの関数で情報を取得していないフィールドのうち最初のものが
選択されます。
field_offset は、
0 からはじまります。
戻り値
フィールド情報を含むobjectを返します。オブジェクトの
プロパティは次のとおりです。
-
name - カラム名
-
table - カラムが属しているテーブルの名前。エイリアスを定義している場合はエイリアスの名前
-
max_length - カラムの最大長
-
not_null - カラムが
null 値をとることができない場合 1
-
primary_key - カラムが主キーであれば 1
-
unique_key - カラムがユニークキーであれば 1
-
multiple_key - カラムが非ユニークキーであれば 1
-
numeric - カラムが数値(numeric)であれば 1
-
blob - カラムがBLOBであれば 1
-
type - カラムの型
-
unsigned - カラムが符号無し(unsigned)であれば 1
-
zerofill - カラムがゼロで埋められている(zero-filled)場合に 1
例
例1 mysql_fetch_field の例
<?php
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$conn) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('database');
$result = mysql_query('select * from table');
if (!$result) {
die('Query failed: ' . mysql_error());
}
/* カラムのメタデータを取得する */
$i = 0;
while ($i < mysql_num_fields($result)) {
echo "Information for column $i:<br />\n";
$meta = mysql_fetch_field($result, $i);
if (!$meta) {
echo "No information available<br />\n";
}
echo "<pre>
blob: $meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name: $meta->name
not_null: $meta->not_null
numeric: $meta->numeric
primary_key: $meta->primary_key
table: $meta->table
type: $meta->type
unique_key: $meta->unique_key
unsigned: $meta->unsigned
zerofill: $meta->zerofill
</pre>";
$i++;
}
mysql_free_result($result);
?>
注意
注意: この関数により返されるフィー
ルド名は 大文字小文字を区別 します。
注意:
SQL クエリでフィールド名やテーブル名のエイリアスを設定している場合は、
エイリアスを返します。本来の名前を取得するには、
mysqli_result::fetch_field を使いましょう。