人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【MySQL + PHP】
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があれば最高です。
よろしくお願いします。

●質問者: にぎたま
●カテゴリ:コンピュータ
✍キーワード:blob FIELD MySQL PHP String
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● acute_hello_to
●0ポイント

http://ftp.cs.pu.edu.tw/Unix/mysql/doc/refman/4.1/ja/c-api-d...

これですか?

◎質問者からの返答

見当たりません。

mysql_fetch_field()

で取得した結果から、->typeで参照できるデータの型です。

MySQLのフィールドがfloat型の場合、

mysql_fetch_field()の結果では

realというデータ型が返ってきます。

この種類を知りたいのです。


2 ● takemori
●0ポイント

http://www.javadrive.jp/mysql/datatype/index.html

また、CASTをSQL文で使うことで型を指定することが出来ます

例:SELECT CAST(id as char) FROM test;

◎質問者からの返答

はい。

それで・・・・・?

指定することが出来て、

それで、どうなるのですか?


3 ● pyopyopyo
●80ポイント ベストアンサー

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
◎質問者からの返答

おー!!!!!

すごいですね!

マニュアルも、見たは見たんですが、

mysql_fetch_field()のところばっかり読んでました。

非常に役に立つ回答をいただきました。

ありがとうございます!

丁寧な表までいただいて感激です。

がんばります!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ