annuaire recherche
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于CodeIgniter 安装 下载 CodeIgniter 安装指导 从老版本升级 疑难解答 介绍 开始 CodeIgniter 是什么? CodeIgniter 速记表 支持特性 应用程序流程图 模型-视图-控制器 架构目标 教程 内容提要 加载静态内容 创建新闻条目 读取新闻条目 结束语 常规主题 CodeIgniter URL 控制器 保留字 视图 模型 辅助函数 使用 CodeIgniter 类库 创建你自己的类库 使用 CodeIgniter 适配器 创建适配器 创建核心系统类 钩子 - 扩展框架的核心 自动装载资源 公共函数 URI 路由 错误处理 缓存 调试应用程序 以CLI方式运行 管理应用程序 处理多环境 PHP替代语法 安全 开发规范 类库参考 基准测试类 日历类 购物车类 配置类 Email 类 加密类 文件上传类 表单验证详解 FTP 类 图像处理类 输入类 Javascript 类 语言类 装载类 迁移类 输出类 分页类 模板解析器类 安全类 Session 类 HTML 表格类 引用通告类 排版类 单元测试类 URI 类 User-Agent 类 表单验证 XML-RPC 和 XML-RPC 服务器 Zip 编码类 缓存适配器 适配器参考 适配器 数据库类 Active Record 类 数据库缓存类 自定义函数调用 数据库配置 连接你的数据库 数据库快速入门例子代码 字段数据 数据库维护类 查询辅助函数 数据库类 查询 生成查询记录集 表数据 事务 数据库工具类 JavaScript类 辅助函数参考 数组辅助函数 CAPTCHA 辅助函数 Cookie Helper 日期辅助函数 目录辅助函数 下载辅助函数 Email 辅助函数 文件辅助函数 表单辅助函数 HTML辅助函数 Inflector 辅助函数 语言辅助函数 数字辅助函数 路径辅助函数 安全辅助函数 表情辅助函数 字符串辅助函数 文本辅助函数 排版辅助函数 URL 辅助函数 XML 辅助函数
personnages

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

数据库工具类

数据库工具类包含有帮助你管理数据库的函数

目录

  • 初始化数据库工具类
  • 列出所有数据库名
  • 查找某个特定的数据库
  • 优化数据表
  • 修复数据库
  • 优化数据库
  • 从数据库结果集导出CSV文件
  • 从数据库结果集导出XML文件
  • 备份数据库

初始化数据库工具类

重要提示:  初始化数据库工具类之前,你的数据库驱动必须已经运行,因为工具类依赖于此。

加载工具类:

$this->load->dbutil()

一旦初始化完毕,你可以通过 $this->dbutil 对象来访问成员函数:

$this->dbutil->some_function()

$this->dbutil->list_databases()

返回一个含有数据库名的数组:

$dbs = $this->dbutil->list_databases();

foreach ($dbs as $db)
{
    echo $db;
}

$this->dbutil->database_exists();

有时候判断一个特定的数据库是否存在,是非常有用的功能。返回一个布尔值 TRUE/FALSE. 使用范例:

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

注意: 将 database_name 替换为你想要查找的数据库名称。这个函数是区分大小写的。

$this->dbutil->optimize_table('table_name');

注意:  此特性仅在MySQL/MySQLi数据库中可用。

允许你优化第一个参数为表名的表。基于操作的成功或失败返回TRUE或FALSE:

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

注意: 并非所有数据库平台都支持表优化

$this->dbutil->repair_table('table_name');

注意:  此特性仅在MySQL/MySQLi数据库中可用。

允许你修复第一个参数为表名的表。基于操作的成功或失败返回TRUE或FALSE:

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

注意: 并非所有数据库平台都支持表修复。

$this->dbutil->optimize_database();

注意:  此特性仅在MySQL/MySQLi数据库中可用。

允许你优化当前DB类所连接到的数据库。返回一个包含DB状态信息的数组,失败返回 FALSE。

$result = $this->dbutil->optimize_database();

if ($result !== FALSE)
{
    print_r($result);
}

注意: 并非所有数据平台都支持表优化。

$this->dbutil->csv_from_result($db_result)

允许你从查询结果集生成一个CSV文件。第一个参数必须为查询结果集对象。例如:

$this->load->dbutil();

$query = $this->db->query("SELECT * FROM mytable");

echo $this->dbutil->csv_from_result($query);

第二和第三个参数允许你设置分隔符和换行符。默认使用tab(跳格)作为分隔符,使用“ ”作为换行符。例如:

$delimiter = ",";
$newline = "\r\n";

echo $this->dbutil->csv_from_result($query, $delimiter, $newline);

重要: 此函数不会将生成的CSV文件保存到磁盘。它只是简单的创建CSV格式。如果需要将文件保存到磁盘,使用文件辅助函数。

$this->dbutil->xml_from_result($db_result)

允许你从结果集中生成一个XML文件。第一个参数是查询结果集对象,第二个参数为可选数组参数,数组包含配置参数。例如:

$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格式。如果需要将文件保存到磁盘,使用文件辅助函数。

$this->dbutil->backup()

允许你备份整个数据库或者独立的表。备份数据可以压缩为Zip或Gzip格式。

注意:  该特性仅在使用MySQL数据库时有效。

备注:由于PHP执行时间和内存的限制,备份巨大的数据库可能不太容易成功。如果你的数据库非常大,你可能需要直接从命令行执行相关命令;或者如果你没有相应权限,你可能需要服务器管理员为你做这件事。

用法:

// 加载数据库工具类
$this->load->dbutil();

// 备份整个数据库并将其赋值给一个变量
$backup =& $this->dbutil->backup();

// 加载文件辅助函数并将文件写入你的服务器
$this->load->helper('file');
write_file('/path/to/mybackup.gz', $backup);

// 加载下载辅助函数并将文件发送到你的桌面
$this->load->helper('download');
force_download('mybackup.gz', $backup);

设置备份参数

将一个包含了各项参数值的数组作为第一个函数参数传递给备份函数,就可以设置数据库备份的参数。例如:

$prefs = array(
                'tables'      => array('table1', 'table2'),  // 包含了需备份的表名的数组.
                'ignore'      => array(),           // 备份时需要被忽略的表
                'format'      => 'txt',             // gzip, zip, txt
                'filename'    => 'mybackup.sql',    // 文件名 - 如果选择了ZIP压缩,此项就是必需的
                'add_drop'    => TRUE,              // 是否要在备份文件中添加 DROP TABLE 语句
                'add_insert'  => TRUE,              // 是否要在备份文件中添加 INSERT 语句
                'newline'     => "\n"               // 备份文件中的换行符
              );

$this->dbutil->backup($prefs);

备份参数说明

参数 默认值 选项 描述
tables 空数组 你想备份的数据表数组,如果留空将备份所有数据表.
ignore 空数组 忽略备份的数据表数组
format gzip gzip, zip, txt 导出文件的格式
filename 当前日期/时间 备份文件名. 如果您使用了zip压缩这个名字是必填的.
add_drop TRUE TRUE/FALSE 是否在您的输出的SQL文件里包含DROP TABLE声明.
add_insert TRUE TRUE/FALSE 是否在您的输出的SQL文件里包含INSERT声明.
newline "\n" "\n", "\r", "\r\n" 使用在您输出的SQL文件里的换行符类型.

 

翻译贡献者: Hex, ianyang, iptton, skey, thankwsx, yinzhili
最后修改: 2012-02-05 23:03:30
Article précédent: Article suivant: