mysql_field_type

(PHP 4, PHP 5)

mysql_field_type結果において指定したフィールドの型を取得する

警告

この拡張モジュールは PHP 5.5.0 で非推奨になりました。将来のバージョンで削除される予定です。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。

説明

string mysql_field_type ( resource $result , int $field_offset )

mysql_field_type() は、 mysql_field_name() 関数に似ています。 引数は同じですが、この関数ではフィールドの型が返されます。

パラメータ

result

評価された結果 リソース。 この結果は、mysql_query() のコールにより得られたものです。

field_offset

数値フィールドオフセット。 field_offset0 から始まります。 field_offset が存在しない場合、 E_WARNING レベルのエラーが発行されます。

返り値

返されるフィールド型は "int", "real", "string", "blob", そして その他 » MySQL ドキュメント で詳細が規定されている型のうちのひとつになります。

例1 mysql_field_type() の例

<?php
mysql_connect
("localhost""mysql_username""mysql_password");
mysql_select_db("mysql");
$result mysql_query("SELECT * FROM func");
$fields mysql_num_fields($result);
$rows   mysql_num_rows($result);
$table  mysql_field_table($result0);
echo 
"Your '" $table "' table has " $fields " fields and " $rows " record(s)\n";
echo 
"The table has the following fields:\n";
for (
$i=0$i $fields$i++) {
    
$type  mysql_field_type($result$i);
    
$name  mysql_field_name($result$i);
    
$len   mysql_field_len($result$i);
    
$flags mysql_field_flags($result$i);
    echo 
$type " " $name " " $len " " $flags "\n";
}
mysql_free_result($result);
mysql_close();
?>

上の例の出力は、 たとえば以下のようになります。

Your 'func' table has 4 fields and 1 record(s)
The table has the following fields:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

注意

注意:

下位互換のために、次の非推奨別名を使用してもいいでしょう。 mysql_fieldtype()

参考

add a note add a note

User Contributed Notes 7 notes

up
1
Anonymous
8 years ago
This function is broken in 4.4.1 (works fine in 4.3.X).
http://bugs.php.net/35536
up
0
c dot futterlieb at bluewin dot ch
7 years ago
Additional to the note below:
If you're using the "SHOW FIELDS" syntax, be sure that you're adding the table name instead of the db name in the "FROM" parameter:

<?php
$result
= mysql_query("SHOW FIELDS FROM table");
?>

Also possible:

<?php
$result
= mysql_query("SHOW FIELDS FROM table.db");
?>

or this:

<?php
$result
= mysql_query("DESCRIBE table");
?>
http://dev.mysql.com/doc/refman/5.1/en/describe.html
up
0
fusionstream at gmail dot com
8 years ago
krang at krang dot org dot uk
Condensed version of what KRANG said.

To get info on the MYSQL field type, use this code

<?
$result
= mysql_query("SHOW FIELDS FROM db_name");

$i = 1;
while (
$row = mysql_fetch_array($result)) { //go through one field at a time
 
echo "Field $i: ";
 
print_r($row) //display all information about A field which can be accessed thru the "$row" array.
 
$i++;
}
?>

Will display something like:
Field 1: Array ( [Field] => SN [Type] => mediumint(8) unsigned [Null] => [Key] => PRI [Default] => [Extra] => auto_increment ) , SN, mediumint(8) unsigned
Field 2: Array ( [Field] => ENTITY_ID [Type] => varchar(20) [Null] => [Key] => [Default] => [Extra] => ) , ENTITY_ID, varchar(20)
up
0
swalif_mesa at hotmail dot com
11 years ago
Hmm for the previous comment, note that SHOW FIELDS is an alias of SHOW COLUMNS. Very useful if you need to search the mysql-documentation. Here is the link anyway...
http://www.mysql.com/doc/en/SHOW_DATABASE_INFO.html
up
-1
fred at dinkler dot com
7 years ago
In MySQL 4.1.x, the four TEXT types (TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT) return 'blob" as field types, not "string".
up
-2
krang at krang dot org dot uk
12 years ago
The field type returns what PHP classifies the data found in the field, not how it is stored in the database; use the following example to retrieve the MySQL information about the field....

$USERNAME = '';
$PASSWORD = '';

$DATABASE = '';
$TABLE_NAME = '';

mysql_connect('localhost', $USERNAME, $PASSWORD)
    or die ("Could not connect");

$result = mysql_query("SHOW FIELDS FROM $DATABASE.$TABLE_NAME");

$i = 0;

while ($row = mysql_fetch_array($result)) {
  echo $row['Field'] . ' ' . $row['Type'];
}
up
-1
mariob at menta dot net
10 years ago
For version 4.3.4, types returned are:

STRING, VAR_STRING: string
TINY, SHORT, LONG, LONGLONG, INT24: int
FLOAT, DOUBLE, DECIMAL: real
TIMESTAMP: timestamp
YEAR: year
DATE: date
TIME: time
DATETIME: datetime
TINY_BLOB, MEDIUM_BLOB, LONG_BLOB, BLOB: blob
NULL: null
Any other: unknown
To Top