direktori cari
Array Array Helper Benchmarking Benchmarking Class Caching Caching Driver Calendaring Calendaring Class CAPTCHA CAPTCHA Helper Config Config Class Cookie Cookie Helper Database Connecting to your Database Custom Function Calls Database Caching Class Database Configuration Database Forge Class Database Metadata Database Quick Start: Example Code Database Reference Database Utility Class DB Driver Reference Generating Query Results Queries Query Builder Class Query Helper Methods Transactions Date Date Helper Directory Directory Helper Download Download Helper Email Email Class Email Helper Encrypt Encrypt Class Encryption Encryption Library File File Helper File Uploading File Uploading Class Form Form Helper Form Validation Form Validation FTP FTP Class Functions compatibility_functions common_functions HTML HTML Helper HTML Table HTML Table Class Image Manipulation Image Manipulation Class Inflector Inflector Helper Input Input Class Javascript Javascript Class Language Language Class Language Helper Loader Loader Class Migrations Migrations Class Number Number Helper Output Output Class Pagination Pagination Class Path Path Helper Security Security Class Security Helper Session Session Library Shopping Cart Shopping Cart Class Smiley Smiley Helper String String Helper Template Parser Template Parser Class Text Text Helper Trackback Trackback Class Typography Typography Class Typography Helper Unit Testing Unit Testing Class URI URL User Agent XML XML-RPC and XML-RPC Server Zip Encoding Zip Encoding Class XML-RPC and XML-RPC Server Classes XML Helper User Agent Class URL Helper URI Class
watak

数据库实用程序类包含帮助您管理数据库的方法。

  • 初始化实用程序类

  • 使用数据库实用程序

    • 检索数据库名称列表

    • 确定数据库是否存在

    • 优化表格

    • 修理一张桌子

    • 优化数据库

    • 将查询结果导出为CSV文件

    • 将查询结果导出为XML文档

  • 备份您的数据库

    • 数据库备份注释

    • 用法示例

    • 设置备份首选项

    • 备份首选项说明

  • 类参考

初始化实用程序类

重要

为了初始化Utility类,您的数据库驱动程序必须已经运行,因为utilities类依赖它。

按如下方式加载Utility类:

$this->load->dbutil();

如果您要管理的数据库不是默认数据库,则还可以将另一个数据库对象传递给数据库实用程序加载器:

$this->myutil = $this->load->dbutil($this->other_db, TRUE);

在上面的例子中,我们传递一个自定义数据库对象作为第一个参数,然后告诉它返回dbutil对象,而不是直接指定给它$this->dbutil

注意

这两个参数都可以单独使用,只要传递一个空值作为第一个参数就可以跳过它。

初始化后,您将使用该$this->dbutil对象访问方法:

$this->dbutil->some_method();

使用数据库实用程序

检索数据库名称列表

返回一组数据库名称:

$dbs = $this->dbutil->list_databases();foreach ($dbs as $db){
        echo $db;}

确定数据库是否存在

有时候知道某个特定数据库是否存在会很有帮助。返回一个布尔值TRUE / FALSE。用法示例:

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

注意

database_name替换为您正在查找的数据库的名称。此方法区分大小写。

优化表格

允许您使用第一个参数中指定的表名来优化表。根据成功或失败返回TRUE / FALSE:

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

注意

并非所有数据库平台都支持表格优化 它主要用于MySQL。

修复一张表格

允许您使用第一个参数中指定的表名来修复表格。根据成功或失败返回TRUE / FALSE:

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

注意

并非所有的数据库平台都支持表格修复。

优化数据库

允许您优化您的数据库类当前连接到的数据库。返回包含DB状态消息的数组或失败时返回FALSE。

$result = $this->dbutil->optimize_database();if ($result !== FALSE){        print_r($result);}

注意

并非所有数据库平台都支持数据库优化 它主要用于MySQL。

将查询结果导出为CSV文件

允许您从查询结果中生成CSV文件。该方法的第一个参数必须包含查询中的结果对象。例:

$this->load->dbutil();$query = $this->db->query("SELECT * FROM mytable");echo $this->dbutil->csv_from_result($query);

第二,第三和第四个参数允许您分别设置分隔符换行符和外壳字符。默认情况下,逗号用作分隔符,“n”用作新行,双引号用作机箱。例:

$delimiter = ",";$newline = "\r\n";$enclosure = '"';echo $this->dbutil->csv_from_result($query, $delimiter, $newline, $enclosure);

重要

此方法不会为您写入CSV文件。它只是创建CSV布局。如果您需要使用文件助手来编写文件。

将查询结果导出为XML文档

允许您从查询结果生成XML文件。第一个参数需要查询结果对象,第二个参数可能包含一个可选的config参数数组。例:

$this->load->dbutil();
$query = $this->db->query("SELECT * FROM mytable");
$config = array (        
    'root'          => 'root',        
    'element'       => 'element',        
    'newline'       => "\n",        
    'tab'           => "\t"
    );
echo $this->dbutil->xml_from_result($query, $config);

重要

此方法不会为您编写XML文件。它只是创建XML布局。如果您需要使用文件助手来编写文件。

备份您的数据库

数据库备份注释

允许您备份完整数据库或单个表格。备份数据可以使用Zip或Gzip格式进行压缩。

注意

此功能仅适用于MySQL和Interbase / Firebird数据库。

注意

对于Interbase / Firebird数据库,备份文件名是唯一的参数。

$this->dbutil->backup(‘db_backup_filename’);

注意

由于PHP可用的执行时间和内存有限,因此可能无法备份非常大的数据库。如果数据库非常大,则可能需要通过命令行直接从SQL服务器进行备份,或者如果您没有root权限,请让您的服务器管理员为您执行备份。

用法示例

// Load the DB utility class
$this->load->dbutil();
// Backup your entire database and assign it to a variable
$backup = $this->dbutil->backup();
// Load the file helper and write the file to your server
$this->load->helper('file');write_file('/path/to/mybackup.gz', $backup);
// Load the download helper and send the file to your desktop
$this->load->helper('download');force_download('mybackup.gz', $backup);

设置备份首选项

通过向backup()方法的第一个参数提交值数组来设置备份首选项。例:

$prefs = array(        'tables'        => array('table1', 'table2'),   // Array of tables to backup.        'ignore'        => array(),                     // List of tables to omit from the backup        'format'        => 'txt',                       // gzip, zip, txt        'filename'      => 'mybackup.sql',              // File name - NEEDED ONLY WITH ZIP FILES        'add_drop'      => TRUE,                        // Whether to add DROP TABLE statements to backup file        'add_insert'    => TRUE,                        // Whether to add INSERT data to backup file        'newline'       => "\n"                         // Newline character used in backup file);$this->dbutil->backup($prefs);

备份首选项说明

偏爱

默认值

选项

描述

空阵列

没有

您想要备份的一系列表格。如果留空,所有表格将被导出。

忽视

空阵列

没有

您希望备份例程忽略的一系列表。

格式

gzip的

gzip,zip,txt

导出文件的文件格式。

文件名

当前日期/时间

没有

备份文件的名称。只有在使用zip压缩时才需要该名称。

add_drop

真正

真假

是否在您的SQL导出文件中包含DROP TABLE语句。

add_insert

真正

真假

是否在SQL导出文件中包含INSERT语句。

新队

“\ n”

“\ n”,“\ r”,“\ r \ n”

在SQL导出文件中使用的换行符类型。

FOREIGN_KEY_CHECKS

真正

真假

输出是否应该保持启用外键检查。

类参考

class CI_DB_utilitybackup([$params = array()])

参数:

$ params(array) - 一个关联的选项数组

返回:

原始/(g)压缩的SQL查询字符串

返回类型:

  • $ paramsarray) - 一个关联的选项数组

返回:raw /(g)压缩的SQL查询字符串
返回类型:字符串
根据用户首选项执行数据库备份。

database_exists($database_name)

参数:

$ database_name(字符串) - 数据库名称

返回:

如果数据库存在,则为TRUE,否则为FALSE

返回类型:

布尔

  • $ database_name字符串) - 数据库名称

返回:如果数据库存在,则返回TRUE;否则返回FALSE
返回类型:布尔值
检查数据库的存在。

list_databases()

返回:

找到数据库名称数组

返回类型:

排列

optimize_database()

返回:

优化消息数组或失败时为FALSE

返回类型:

排列

optimize_table($table_name)

参数:

$ table_name(string) - 要优化的表的名称

返回:

优化消息数组或失败时为FALSE

返回类型:

排列

  • $ table_namestring) - 要优化的表的名称

返回:优化消息数组或失败时为FALSE
返回类型:数组
优化数据库表。

repair_table($table_name)

参数:

$ table_name(string) - 要修复的表的名称

返回:

修复消息数组或失败时为FALSE

返回类型:

排列

  • $ table_namestring) - 要修复的表的名称

返回:修复消息数组或失败时为FALSE
返回类型:数组
修复数据库表。

csv_from_result($query[, $delim = ', '[, $newline = "n"[, $enclosure = '"']]])

参数:

$ query(object) - 数据库结果对象$ delim(string) - 要使用的CSV字段分隔符$ newline(string) - 要使用的换行符$ enclosure(string) - 要使用的存储区定界符

返回:

生成的CSV文件作为字符串

返回类型:

  • $ queryobject) - 一个数据库结果对象

  • $ delimstring) - 要使用的CSV字段分隔符

  • $ newlinestring) - 要使用的换行符

  • $ enclosurestring) - 要使用的机箱分隔符

返回:生成的CSV文件作为字符串
返回类型:字符串
将数据库结果对象转换为CSV文档。

xml_from_result($query[, $params = array()])

参数:

$ query(object) - 一个数据库结果对象$ params(array) - 一个首选项的关联数组

返回:

生成的XML文档作为字符串

返回类型:

  • $ queryobject) - 一个数据库结果对象

  • $ paramsarray) - 一个首选项的关联数组

返回:生成的XML文档作为字符串
返回类型:字符串
将数据库结果对象转换为XML文档。
Artikel sebelumnya: Artikel seterusnya: