[php] 열 이름을 얻는 MySQL 쿼리?

PHP에서 모든 mysql 테이블의 col 이름을 배열로 가져오고 싶습니다.

이것에 대한 질문이 있습니까?



답변

가장 좋은 방법은 INFORMATION_SCHEMA 메타 데이터 가상 데이터베이스 를 사용하는 것 입니다. 특히 INFORMATION_SCHEMA.COLUMNS 테이블 …

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename';

매우 강력하며 텍스트를 구문 분석 할 필요없이 정보의 톤을 제공 할 수 있습니다 (열 유형과 같이 열이 nullable인지, 최대 열 크기, 문자 집합 등) …

아, 그리고 그것은 표준 SQL입니다 ( SHOW ...MySQL 전용 확장 프로그램 인 반면 ) …

테이블 SHOW...INFORMATION_SCHEMA테이블 의 차이점에 대한 자세한 내용은 일반적으로 MySQL 설명서를 참조하십시오INFORMATION_SCHEMA


답변

MYSQL에 다음 쿼리를 사용할 수 있습니다.

SHOW columns FROM your-table;

다음은 PHP에서 위 구문을 구현하여 열 이름을 나열하는 방법을 보여주는 예제 코드입니다.

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."<br>";
}

SHOW COLUMNS FROM TABLE방문 결과에 대한 자세한 내용은 MySQL Refrence를 참조하십시오.


답변

두 가지 방법이 있습니다.

DESCRIBE `tablename`

또는

SHOW COLUMNS FROM `tablename`

더에 DESCRIBE여기 : http://dev.mysql.com/doc/refman/5.0/en/describe.html


답변

나는 과거에 이것을했다.

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 


답변

편집 : 오늘 나는 이것을하는 더 좋은 방법을 배웠습니다. ircmaxell의 답변을 참조하십시오.


출력 분석 SHOW COLUMNS FROM table;

여기에 더 자세한 내용이 있습니다 : http://dev.mysql.com/doc/refman/5.0/en/show-columns.html


답변

mysql_fetch_field()모든 열 데이터를 보는 데 사용 합니다. 매뉴얼을 참조하십시오 .

$query = 'select * from myfield';
$result = mysql_query($query);
$i = 0;
while ($i < mysql_num_fields($result))
{
   $fld = mysql_fetch_field($result, $i);
   $myarray[]=$fld->name;
   $i = $i + 1;
}

“경고이 확장은 PHP 5.5.0부터 더 이상 사용되지 않으며 향후 제거 될 예정입니다.”


답변

오래된 PHP 함수 “mysql_list_fields ()”는 더 이상 사용되지 않습니다. 따라서 오늘날 필드 이름을 얻는 가장 좋은 방법은 “SHOW COLUMNS FROM table_name [LIKE ‘name’]”쿼리입니다. 여기 약간의 예가 있습니다 :

$fields = array();
$res=mysql_query("SHOW COLUMNS FROM mytable");
while ($x = mysql_fetch_assoc($res)){
  $fields[] = $x['Field'];
}
foreach ($fields as $f) { echo "<br>Field name: ".$f; }