CI(3)Database文件的配置说明

来源:互联网 发布:软件设计师薪酬 编辑:程序博客网 时间:2024/05/22 17:36
1、设置目录:application/config/database.php

2、文件信息说明:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(

 'dsn' => '',

 'hostname' => 'localhost',  // 数据库的主机名,通常位于本机,可以表示为 "localhost"

 'username' => 'root',  // 需要连接到数据库的用户名

 'password' => '',  // 登陆数据库的密码

 'database' => 'ci_project',  // 连接的数据库名

 'dbdriver' => 'mysql',  // 数据库类型。如:mysql、postgres、odbc 等。必须为小写字母

 'dbprefix' => '',  // 当运行Active Record查询时数据表的前缀,它允许在一个数据库上安装多个CodeIgniter程序

 'pconnect' => FALSE,  // 使用持续连接

 'db_debug' => TRUE,  // 显示数据库错误信息

 'cache_on' => FALSE,  // 数据库查询缓存是否开启,详情请见数据库缓存类

 'cachedir' => '',  // 数据库查询缓存目录所在的服务器绝对路径

 'char_set' => 'utf8',  // 与数据库通信时所使用的字符集

 'dbcollat' => 'utf8_general_ci',  // 与数据库通信时所使用的字符规则(character collation )

 'swap_pre' => '',

 'encrypt' => FALSE,

 'compress' => FALSE,

 'stricton' => FALSE,

 'failover' => array(),

 'save_queries' => TRUE

);

3、链接数据库

(1)自动链接:“自动连接” 功能将在每个一页面加载时被自动实例化数据库类

    在“application/config/autoload.php”文件 $autoload 数组里添加 database:$autoload['database'] = array();

(2)手动链接:仅仅是一部分页面要求数据库连接,可以在需要的函数里手工添加如下代码或者在类里手工添加以供该类使用

    $this->load->database();


扩展:配置数据库连接值,用数组或DSN字符串传递

    1、数组形式:

       上述链接数据库时,都是链接到默认的数据库。如果需要链接到自定义的数据库,我们需要引用:$this->load->database('group_name');
       注:group_name 指的是存在于你的配置文件中的带有数据库连接信息的数组的名字

  如:
$db['additional']['hostname'] = 'localhost';
$db['additional']['username'] = 'root';
$db['additional']['password'] = '111111';
$db['additional']['database'] = 'test_other';
$db['additional']['dbdriver'] = 'mysql';
$db['additional']['dbprefix'] = '';
$db['additional']['pconnect'] = FALSE;
$db['additional']['db_debug'] = TRUE;
$db['additional']['cache_on'] = FALSE;
$db['additional']['cachedir'] = '';
$db['additional']['char_set'] = 'utf8';
$db['additional']['dbcollat'] = 'utf8_general_ci';
$db['additional']['swap_pre'] = '';
$db['additional']['autoinit'] = TRUE;
$db['additional']['stricton'] = FALSE;

$this->load->database('additional',true);


2、DSN形式:

通用表达式:$dsn = 'dbdriver://username:password@hostname/database';
链接访问:$this->load->database($dsn);

注:
当用 DSN 字符串连接时,要覆盖配置默认值,则添加配置变量为查询字符串。

$dsn = 'dbdriver://username:password@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';
 
$this->load->database($dsn);

3、一个工程项目链接多个数据库

需要同时连接多于一个的数据库,可以用以下方式来实现:
 
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE); 

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

通过设置函数的第二个参数为TRUE(boolean)来返回一个数据库对象。
当使用这种方法,将用对象名来执行操作命令而不是用户向导模式,也就是说,将用以下方式执行数据库操作:
 
$DB1->query();
$DB1->result();

etc...

4、重新连接 / 保持连接有效

当正在进行一些重量级的PHP操作(例如处理图片)时,如果超出了数据库服务器的空闲超时限度,应该考虑在执行更多查询之前使用 reconnect() 方法来向服务器发送ping命令,这样可以保持或重新建立连接。
 
执行表达式:$this->db->reconnect();












0 0
原创粉丝点击