数据库实用程序类
数据库实用程序类包含帮助您管理数据库的方法。
初始化实用程序类
按如下方式加载实用程序类
$dbutil = \Config\Database::utils();
您也可以将另一个数据库组传递给 DB Utility 加载器,以防您要管理的数据库不是默认数据库
$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()
助手。