データベースユーティリティクラス
データベースユーティリティクラスには、データベースの管理に役立つメソッドが含まれています。
ユーティリティクラスの初期化
ユーティリティクラスは次のようにロードします。
$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);
2 番目、3 番目、4 番目のパラメーターでは、それぞれ区切り文字、改行、囲み文字を設定できます。デフォルトでは、区切り文字としてカンマが使用され、改行として "\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 ファイルを生成できます。最初のパラメーターはクエリ結果オブジェクトを期待し、2 番目のパラメーターはオプションの構成パラメーターの配列を含む場合があります。例
<?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()
ヘルパーを使用してください。