데이터베이스 유틸리티
데이터베이스 유틸리티 클래스에는 데이터베이스 관리에 도움이 되는 메서드가 포함되어 있습니다.
유틸리티 클래스 초기화
다음과 같이 유틸리티 클래스를 로드합니다.
$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);
mytable에 id 및 name 열이 있으면 다음과 같은 xml 결과를 얻습니다.
<root>
<element>
<id>1</id>
<name>bar</name>
</element>
</root>
중요
이 방법은 XML 파일을 작성하지 않습니다. 단순히 XML 레이아웃을 생성합니다. 파일을 작성해야 한다면 write_file() 도우미를 사용하세요.