2011-11-11 6 views
0

PHPを使用してSQLデータベース内の各フィールドのデータ型を取得する方法を知りたいです。 SOLRでいくつかのドキュメントを作成するために、このデータ型を使用します。例についてはPHPを使用してデータベースフィールドのデータ型を知るには?

だから、
if (datatype == int) then "[field_name] + _i". 

、私はフィールドbedroomsを持っているとデータ型は、私がbedrooms_iになるこのフィールドを保存しますSOLRで、integerある場合。

+0

データベースのフィールド名がデータ型に基づいているのはなぜですか? –

+0

どのデータベース? MySQL? –

+0

Steve Lewis:はい、私はMySqlを使用しました Oli:そうではないと思います。私はSOLRのために使用しますので、solrのフィールド名はデータベースのデータ型に基づいています。 答えに感謝します。 。 – Praditha

答えて

2

mysql_fetch_field()を使用すると、フィールドに関するメタデータを取得できます。

mysql_connect('localhost','user','password'); 
mysql_select_db('database'); 

$sql = "SELECT * FROM your_table"; 
$result = mysql_query($sql);  

$i = 0; 
while ($i < mysql_num_fields($result)) 
{ 
    $meta = mysql_fetch_field($result, $i); 
    echo "<pre>".print_r($meta,TRUE)."</pre>"; 
    $i++; 
} 

ここで$meta->typeはフィールドタイプを示します。

+0

はこれをクエリ結果に使用できます。 私は複数のテーブルに参加していますので、そのクエリで取得するすべてのフィールドのデータ型が必要です。 答えに感謝します。 – Praditha

+0

はい、それはクエリの結果 – Vikk

+0

ヘイ、感謝Vikk、それは仕事で動作します。 申し訳ありません私はあなたの答えを投票することはできません、私の評判はまだ十分ではありません。^_ ^ – Praditha

0

MySQLでは、SHOW COLUMN Sを使用して、テーブル内のすべてのフィールド/カラムの名前、データタイプなどを取得できます。

+0

これを行うための他の機能があります。 私のクエリでは、私はより多くのテーブルに参加したので、クエリの結果からデータ型を得ることができる関数があれば、それは私に多くの助けになります。 btw、お返事ありがとうございます。 – Praditha

0

議論のために、私はMySQLを仮定します。

SELECT COLUMN_NAME, DATA_TYPE, {ETC...} 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = 'your_database' AND 
    TABLE_NAME = 'your_table' 
+0

これをクエリ結果に使用できますか。なぜなら、私は複数のテーブルに加わったので、そのクエリで得られるすべてのフィールドのデータ型が必要になるからです。答えをありがとう。 – Praditha

関連する問題