mysql_query()で返された結果$resultに対して
$field = mysql_fetch_field($result)で
フィールドの情報を取得したときに、
$field->typeで、データのタイプ(=型?)が参照できますが、
MySQLのcreate tableで指定した型とは同一ではありません。
このタイプにはどんな種類があるか教えてください。
現状では、int,string,blob,realなどがあることが分かっています。
MySQLのcreate tableで指定した型と
mysql_fetch_field()で取得した->typeとの
対応表が載っているURLがあれば最高です。
よろしくお願いします。
phpのマニュアル
http://jp.php.net/manual/ja/function.mysql-fetch-field.php
http://jp.php.net/manual/ja/function.mysql-field-type.php
によると,以下のような対応になるみたいです.
MYSQL側の型 | $field->typeの値 |
CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET | string |
TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER, BIGINT | int |
FLOAT, DOUBLE, DECIMAL, NUMERIC | real |
TIMESTAMP | timestamp |
YEAR | year |
DATE | date |
TIME | time |
DATETIME | datetime |
TINYBLOB, MEDIUMBLOB, LONGBLOB, BLOB | blob |
PHPのバージョンによりバージョンによっては不具合があったり、
違う結果になる可能性があります。
使う場合は、確認が必要と思います。
http://jp2.php.net/manual/ja/function.mysql-field-type.php
アドバイスありがとうございます!
自分で確認の取れそうな量なので、
是非やってみます。
質問終了後にもかかわらず
わざわざコメントとしてお答えいただいて
ありがとうございます。
ちょっとマイナー(?)な内容かもしれませんが、
ひょっとしたら知りたい人が居るかもしれませんので、
試した後に、ここにコメントとして乗せたいと思います。
WinXP
MySQL 4.2.18
PHP 5.1.2
基本的には、pyopyopyoさんの表のとおりです。
違ったところは、
TINYTEXT,MEDIUMTEXT,TEXT,LONGTEST
このTEXTと名のつく4つのフィールドは
mysql_fetch_field()の
->typeでは、
blobという結果になりました。
結局自分で全部調べて結果が分かりましたが、
pyopyopyoさんも、kurukuru-nekoさんも
お二人のアドバイスのおかげです。
本当に助かりました。
ありがとうございます。