2011-11-11 3 views
0

PHP를 사용하여 SQL 데이터베이스에서 각 필드의 데이터 유형을 얻는 방법을 알고 싶습니다. SOLR에서 일부 문서를 만들 때이 데이터 유형을 사용하고 싶습니다. 예를 들어PHP를 사용하여 데이터베이스 필드의 데이터 유형을 어떻게 알 수 있습니까?

: I 필드 bedrooms을 가지고 데이터 유형이 integer 경우

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

그래서, SOLR에 내가 bedrooms_i 수 있도록이 필드를 절약 할 수

.

+0

데이터베이스 유형의 이름이 데이터 유형을 기반으로하는 이유는 무엇입니까? –

+0

어떤 데이터베이스가 있습니까? MySQL은? –

+0

Steve Lewis : 예, My SQL을 사용했습니다 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

관련 문제