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 로 연결된 정보이다. 관련 내용은 이 포스트를 참고하면 된다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.