データベースユーティリティクラス

データベースユーティリティクラスには、データベースの管理に役立つメソッドが含まれています。

ユーティリティクラスの初期化

ユーティリティクラスは次のようにロードします。

$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);

mytableidname の列がある場合、次の XML 結果が取得されます。

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

重要

このメソッドは XML ファイルを書き込みません。XML レイアウトを作成するだけです。ファイルを書き込む必要がある場合は、write_file() ヘルパーを使用してください。