데이터베이스 유틸리티

데이터베이스 유틸리티 클래스에는 데이터베이스 관리에 도움이 되는 메서드가 포함되어 있습니다.

유틸리티 클래스 초기화

다음과 같이 유틸리티 클래스를 로드합니다.

$dbutil = \Config\Database::utils();

관리하려는 데이터베이스가 기본 데이터베이스가 아닌 경우 다른 데이터베이스 그룹을 DB 유틸리티 로더에 전달할 수도 있습니다.

$dbutil = \Config\Database::utils('group_name');

위의 예에서는 데이터베이스 그룹 이름을 첫 번째 매개변수로 전달합니다.

데이터베이스 유틸리티 사용

데이터베이스 이름 목록 검색

데이터베이스 이름 배열을 반환합니다.

$dbutil = \Config\Database::utils();

$dbs = $dbutil->listDatabases();

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

데이터베이스가 존재하는지 확인

때로는 특정 데이터베이스가 존재하는지 아는 것이 도움이 될 수 있습니다. 부울 true/false를 반환합니다. 사용 예:

$dbutil = \Config\Database::utils();

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

참고

database_name을 찾고 있는 데이터베이스 이름으로 바꾸세요. 이 방법은 대소문자를 구분합니다.

테이블 최적화

첫 번째 매개변수에 지정된 테이블 이름을 사용하여 테이블을 최적화할 수 있습니다. 성공 또는 실패에 따라 true/false를 반환합니다.

$dbutil = \Config\Database::utils();

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

참고

모든 데이터베이스 플랫폼이 테이블 최적화를 지원하는 것은 아닙니다. 주로 MySQL과 함께 사용됩니다.

데이터베이스 최적화

DB 클래스가 현재 연결된 데이터베이스를 최적화할 수 있습니다. 실패 시 DB 상태 메시지 또는 false를 포함하는 배열을 반환합니다.

$dbutil = \Config\Database::utils();

$result = $dbutil->optimizeDatabase();

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

참고

모든 데이터베이스 플랫폼이 데이터베이스 최적화를 지원하는 것은 아닙니다. 주로 MySQL과 함께 사용됩니다.

쿼리 결과를 CSV 파일로 내보내기

쿼리 결과에서 CSV 파일을 생성할 수 있습니다. 메서드의 첫 번째 매개 변수에는 쿼리의 결과 개체가 포함되어야 합니다. 예:

$db     = db_connect();
$dbutil = \Config\Database::utils();

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

echo $dbutil->getCSVFromResult($query);

두 번째, 세 번째, 네 번째 매개변수를 사용하면 구분 기호 줄 바꿈 및 엔클로저 문자를 각각 설정할 수 있습니다. 기본적으로 쉼표가 구분 기호로 사용되고, "\n"은 새 줄로 사용되고, 큰따옴표는 엔클로저로 사용됩니다. 예:

$db     = db_connect();
$dbutil = \Config\Database::utils();

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

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

echo $dbutil->getCSVFromResult($query, $delimiter, $newline, $enclosure);

중요

이 방법은 CSV 파일을 작성하지 않습니다. 단순히 CSV 레이아웃을 생성합니다. 파일을 작성해야 한다면 write_file() 도우미를 사용하세요.

쿼리 결과를 XML 문서로 내보내기

쿼리 결과에서 XML 파일을 생성할 수 있습니다. 첫 번째 매개변수에는 쿼리 결과 개체가 필요하고, 두 번째 매개변수에는 구성 매개변수의 선택적 배열이 포함될 수 있습니다. 예:

<?php

$db     = db_connect();
$dbutil = \Config\Database::utils();

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

$config = [
    'root'    => 'root',
    'element' => 'element',
    'newline' => "\n",
    'tab'     => "\t",
];

echo $dbutil->getXMLFromResult($query, $config);

mytableidname 열이 있으면 다음과 같은 xml 결과를 얻습니다.

<root>
    <element>
        <id>1</id>
        <name>bar</name>
    </element>
</root>

중요

이 방법은 XML 파일을 작성하지 않습니다. 단순히 XML 레이아웃을 생성합니다. 파일을 작성해야 한다면 write_file() 도우미를 사용하세요.