CodeIgniter通过配置文件application/config/database.php设置数据库连接,需修改hostname、username、password、database等参数;示例使用mysqli驱动连接MySQL;可通过autoload.php自动加载database库;支持多数据库连接,如production和testing环境;还可使用DSN字符串统一管理连接信息,确保服务正常与权限正确。

CodeIgniter数据库连接的设置主要通过配置文件来完成,框架提供了简单灵活的方式让你快速连接数据库。下面介绍如何在CodeIgniter中配置数据库连接。
1. 配置数据库连接信息
在CodeIgniter中,数据库配置文件位于 application/config/database.php。打开这个文件,你会看到一个名为 $db['default'] 的数组,它定义了默认的数据库连接参数。
你需要根据你的数据库环境修改以下关键字段:
- hostname:数据库服务器地址,如 'localhost' 或 IP 地址
- username:数据库用户名
- password:数据库密码
- database:要连接的数据库名称
- dbdriver:数据库类型,如 'mysqli'、'pdo'、'postgre' 等
- dbprefix:数据表前缀(可选)
- pconnect:是否使用持久连接,true 或 false
- char_set 和 dbcollat:字符集和排序规则,通常设为 'utf8' 和 'utf8_general_ci'
示例配置(MySQL):
$db['default'] = array('dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'password',
'database' => 'my_database',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci'
);
2. 自动加载数据库类
为了在控制器中直接使用数据库功能,建议将数据库类加入自动加载。编辑 application/config/autoload.php 文件:
$autoload['libraries'] = array('database');这样每次请求都会自动加载数据库类,无需在每个控制器中手动调用 $this->load->database()。
3. 多数据库连接配置
如果你的应用需要连接多个数据库,可以在 database.php 中添加新的连接组:
$db['production'] = array('hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'production_db',
'dbdriver' => 'mysqli'
);
$db['testing'] = array(
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'testing_db',
'dbdriver' => 'mysqli'
);
在控制器中使用时指定连接名:
$this->load->database('production');$this->load->database('testing', FALSE, TRUE); // 第三个参数 TRUE 表示返回对象,可用于多连接
4. 使用 DSN 连接方式(可选)
你也可以使用 DSN 字符串来配置连接,尤其适用于 PDO。将 DSN 填入 'dsn' 字段,例如:
'dsn' => 'mysql:host=localhost;dbname=my_database;charset=utf8',使用 DSN 后,其他主机、端口等信息可留空,由 DSN 统一管理。
基本上就这些。正确填写配置后,CodeIgniter 就能顺利连接数据库。确保数据库服务运行正常,权限设置正确,避免因密码或权限问题导致连接失败。









