CodeIgniter User Guide Version 2.1.0


데이터베이스 유틸리티 클래스 Database Utility Class

데이터베이스 유틸리티클래스는 데이터베이스 관리에 도움을 주는 함수들을 제공합니다.

목차

유틸리티 클래스 초기화Initializing the Utility Class

중요:  관리클래스를 초기화 하기위해서는 데이터베이스 드라이버가 실행된 상태라야 합니다. 관리클래스는 데이터베이스 드라이버에 의존합니다

아래와같이 유틸리티클래스를 로드합니다:

$this->load->dbutil()

초기화 되고 나면 함수들을 사용할때$this->dbutil 객체를 이용합니다:

$this->dbutil->some_function()

$this->dbutil->list_databases()

데이터베이스 이름을 담은 배열을 리턴합니다:

$dbs = $this->dbutil->list_databases();

foreach($dbs as $db)
{
    echo $db;
}

$this->dbutil->database_exists();

데이터베이스 존재여부를 확인. 리턴값 TRUE/FALSE. 예제:

if ($this->dbutil->database_exists('database_name'))
{
   // some code...
}

주의: database_name 부분을 찾고자하는 테이블 명으로 바꿉니다(헐.. db 명이 아니구?).대소문자에 주의하세요.

$this->dbutil->optimize_table('table_name');

정보:  이함수는 MySQL/MySQLi 데이터베이스에서만 사용할수 있습니다.

첫번째 파라미터로 테이블이름을 넘겨주며 , 그 테이블을 최적화 합니다.작업결과에 따라서 TRUE/FALSE을 리턴합니다:

if ($this->dbutil->optimize_table('table_name'))
{
    echo 'Success!';
}

정보: 모든 데이터베이스 플렛폼이 테이블 최적화를 지원하지는 않습니다.

$this->dbutil->repair_table('table_name');

정보:  이함수는 MySQL/MySQLi 데이터베이스에서만 사용할수 있습니다.

첫번째 파라미터로 테이블이름을 넘겨주며 , 그 테이블을 수리 합니다. 작업결과에 따라서 TRUE/FALSE을 리턴합니다:

if ($this->dbutil->repair_table('table_name'))
{
    echo 'Success!';
}

정보: 모든 데이터베이스 플렛폼이 테이블 최적화를 지원하지는 않습니다.

$this->dbutil->optimize_database();

정보:  이함수는 MySQL/MySQLi 데이터베이스에서만 사용할수 있습니다.

현재 사용중인 데이터베이스를 최적화합니다.작업결과에 따라 데이터베이스 상태가 담긴 배열을 리턴하거나 FALSE를 리턴합니다.

$result = $this->dbutil->optimize_database();

if ($result !== FALSE)
{
    print_r($result);
}

정보: 모든 데이터베이스 플렛폼이 테이블 최적화를 지원하지는 않습니다.

$this->dbutil->csv_from_result($db_result)

쿼리결과로부터 CSV를 생성할수 있게 합니다.첫번째 파라미터는 반드시 쿼리실행의 결과객체라야 합니다.예제:

$this->load->dbutil();

$query = $this->db->query("SELECT * FROM mytable");

echo $this->dbutil->csv_from_result($query);

두번째와 세번째 파라미터는 각각 칼럼구분자(delimiter)와 줄바꿈문자로 설정합니다. 기본적으로 탭이 칼럼구분자로,"\n"이 줄바꿈문자입니다.
사용예:

$delimiter = ",";
$newline = "\r\n";

echo $this->dbutil->csv_from_result($query, $delimiter, $newline);

중요:  이함수는 CSV 파일을 생성하는것이 아니라 단순히 CSV레이아웃을 생성합니다.이파일을 저장하러면 파일헬퍼 섹션을 보세요 .

$this->dbutil->xml_from_result($db_result)

쿼리 결과로부터 XML 을 생성해줍니다. 첫번째 파라미터는 쿼리결과 객체이며 두번째 파라미터는 옵션으로 환경설정을 담은 배열을 넘겨줄수 있습니다.
사용예 :

$this->load->dbutil();

$query = $this->db->query("SELECT * FROM mytable");

$config = array (
                  'root'    => 'root',
                  'element' => 'element',
                  'newline' => "\n",
                  'tab'    => "\t"
                );

echo $this->dbutil->xml_from_result($query, $config);

중요:  이함수는 XML 파일을 생성하는것이 아니라 단순히 XML레이아웃을 생성합니다.이파일을 저장하러면 파일헬퍼 섹션을 보세요 ..

$this->dbutil->backup()

데이터베이스 전체나 각각의 테이블을 백업할수 있도록 합니다.백업데이터는 Zip 이나 Gzip 포멧으로 압축할수 있습니다.

정보:  이함수는 MySQL 데이터베이스에서만 사용할수 있습니다.

주의: PHP에서 사용가능한 메모리가 제한되어있고 실행시간의 제한도 있기 때문에 너무큰 데이터베이스의 백업은 불가능할수 있습니다.큰 데이터베이스는 직접백업하세요 .

사용예

// Load the DB utility class
$this->load->dbutil();

// Backup your entire database and assign it to a variable
$backup =& $this->dbutil->backup();

// Load the file helper and write the file to your server
$this->load->helper('file');
write_file('/path/to/mybackup.gz', $backup);

// Load the download helper and send the file to your desktop
$this->load->helper('download');
force_download('mybackup.gz', $backup);

백업 환경설정 Setting Backup Preferences

백업 환경설정은 배열로 구성되며 백업함수의 첫번째 파라미터로 넘기시면됩니다.
예제:

$prefs = array(
                'tables'      => array('table1', 'table2'),  // Array of tables to backup.
                'ignore'      => array(),           // List of tables to omit from the backup
                'format'      => 'txt',             // gzip, zip, txt
                'filename'    => 'mybackup.sql',    // File name - NEEDED ONLY WITH ZIP FILES
                'add_drop'    => TRUE,              // Whether to add DROP TABLE statements to backup file
                'add_insert'  => TRUE,              // Whether to add INSERT data to backup file
                'newline'     => "\n"               // Newline character used in backup file
              );

$this->dbutil->backup($prefs);

백업 환경설정 설명 Description of Backup Preferences

설정 기본값 옵션 설명
tablesempty arrayNone 백업하고자하는 테이블명 배열. 공백이면 모든 테이블을 백업.
ignoreempty arrayNone 백업루틴에서 제외하고자하는 테이블명.(백업안할 테이블)
formatgzipgzip, zip, txt 백업파일의 포멧.
filenamethe current date/timeNone 백업파일의 파일명.ZIP 압축시에만 필요함
add_dropTRUETRUE/FALSE DROP TABLE 문을 백업파일에 추가할지 여부
add_insertTRUETRUE/FALSE INSERT문을 SQL 백업파일에 추가할지 여부.
newline"\n""\n", "\r", "\r\n" SQL 백업파일의 줄바꿈 문자.