MySQL DB 테이블 정보 얻기
최근에 연구 자료를 검색할 수 있는 사이트를 개발하고 있는데.. 데이터의 항목이 많다보니 입력폼을 만드는 것도 일이다. 그러다 생각한 방법이 MySQL 테이블에 코멘트를 입력하고 이 정보를 입력폼의 항목명으로 사용하는 것이다. 그러기 위해서는 테이블의 정보를 가져올 수 있어야 하는데 아래와 같은 함수를 사용해서 정보를 얻어오면 된다.
<?php
function getTableInfos($table, $full = false)
{
global $DB;
$sql = " SHOW COLUMNS FROM `$table` ";
if ($full)
$sql = " SHOW FULL COLUMNS FROM `$table` ";
$DB->prepare($sql);
$DB->execute();
$result = $DB->fetchAll();
$data = array();
for ($i=0; $row = array_shift($result); $i++) {
$name = $row['Field'];
array_shift($row);
$data[$name] = $row;
}
return $data;
}
function getColumnNames($table)
{
return array_keys($this->getFieldInfos($table));
}
테이블에서 코멘트 등의 모든 정보를 얻기 위해서는 getTableInfos('Table', true);
와 같이 실행하면 된다. 코드 중 $DB 는 PDO 로 연결된 정보이다. 관련 내용은 이 포스트를 참고하면 된다.