2011-11-11 31 views
0

我想知道如何使用PHP獲取SQL數據庫中每個字段的數據類型; 我想用這個數據類型在SOLR中創建一些文檔。我如何知道使用PHP的數據庫字段的數據類型?

例如:

if (datatype == int) then "[field_name] + _i". 

所以,如果我有場bedrooms和數據類型是integer,在SOLR我將保存本場是bedrooms_i

+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

嘿,感謝維克,這是工作。 對不起,我不能投你的答案,我的名聲還不夠,。^_ ^ – Praditha

0

在MySQL中,您可以使用SHOW COLUMN S來獲取表中所有字段/列的名稱,數據類型等。

+0

是否有其他功能可以做到這一點? ,因爲在我的查詢中,我加入了更多的表,所以如果有任何可以從查詢結果中獲取數據類型的函數,它會幫助我很多。 順便說一句,感謝您的回答。 – 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

相關問題