日期:2014-05-16  浏览次数:20566 次

CI框架数据库操作知识点总结

数据库配置

CodeIgniter 有一个配置文件让你存放数据库连接值,配置文件位于以下路径:

application/config/database.php

配件文件存放在一个如下格式的一个多维数组里:

$db['default']['hostname']= "localhost";

$db['default']['username']= "root";

$db['default']['password']= "";

$db['default']['database']= "database_name";

$db['default']['dbdriver']= "mysql";

$db['default']['dbprefix']= "";

$db['default']['pconnect']= TRUE;

$db['default']['db_debug']= FALSE;

$db['default']['cache_on']= FALSE;

$db['default']['cachedir']= "";

$db['default']['char_set']= "utf8";

$db['default']['dbcollat']= "utf8_general_ci";

我们使用多维数组的原因是为了让你随意的存储多个连接值的设置。

例如我们又定义了一个test数据库:

$db['test']['hostname']= "localhost";

$db['test']['username']= "root";

$db['test']['password']= "";

$db['test']['database']= "database_name";

$db['test']['dbdriver']= "mysql";

$db['test']['dbprefix']= "";

$db['test']['pconnect']= TRUE;

$db['test']['db_debug']= FALSE;

$db['test']['cache_on']= FALSE;

$db['test']['cachedir']= "";

$db['test']['char_set']= "utf8";

$db['test']['dbcollat']= "utf8_general_ci";

那么,告诉系统使用"test"组,你可以设置位于该配置文件中的变量: 

$active_group = "test";

注意: "test"的名字是任意的,这可以让你自由设置,我们的主要连接默认使用"default"这个名字,当然,您可以基于您的项目为它起一个更有意义的名字。

连接你的数据库有两种方法:

自动连接

“自动连接” 功能将在每个一页面加载时被自动实例化数据库类。要启用“自动连接”,可在如下文件中的 library 数组里添加 database:

application/config/autoload.php 即:$autoload['libraries'] = array('database');

手动连接

如果仅仅是一部分页面要求数据库连接,你可以在你有需要的函数里手工添加如下代码或者在你的类里手工添加以供该类使用。

$this->load->database();

然后在控制器或模型中使用如下语法操作:

$this->db->XXX方法;

注:数据库连接也可以在模型中进行一些定义,如:$this->load->model('Model_name', '', TRUE);这里第三个参数为TRUE就是自动连接数据库了,此时,即使你在模型中没有连接数据库,程序也会正常工作。这里多说两句,第三个参数也可以是你配置的数据库数组的名字,这样做是手动连接指定的数据库,这个方法的第二个参数是在使用模型前,为该模型起一个别名。

连接多数据库

如果你需要同时连接多于一个的数据库,你可以用以下方式来实现:

$DB1 = $this->load->database('group_one',TRUE);

$DB2 = $this->load->database('group_two',TRUE); 

注意:改变 "group_one" 和 "group_two" 为你指定了连接属性的组名 (或者通过上边说过的连接数组的数组名)。通过设置函数的第二个参