目录搜索
欢迎目录快速参考图基本信息服务器要求许可协议变更记录关于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 辅助函数
文字

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
上一篇:下一篇: