CI Model 数据库加载

在CodeIgniter(简称CI)框架中,数据库连接是一个至关重要的环节,CI框架通过配置文件将数据库连接参数加载并初始化数据库连接,下面将详细描述如何配置和连接数据库,包括加载数据库库配置文件、配置数据库连接参数、初始化数据库连接以及验证数据库连接。
一、加载数据库库配置文件
在CodeIgniter中,数据库配置文件位于application/config/database.php,该文件包含多个数据库组,每个组代表不同的数据库连接设置,默认情况下,CI提供了一个名为default的数据库组,通过编辑此文件,可以设置不同的数据库连接参数。
$active_group = 'default'; // 活动的数据库组
$query_builder = TRUE; // 是否加载Query Builder类
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost', // 数据库主机
'username' => 'root', // 数据库用户名
'password' => '', // 数据库密码
'database' => 'database_name', // 数据库名
'dbdriver' => 'mysqli', // 数据库驱动类型
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);二、配置数据库连接参数
上述代码片段展示了如何在database.php文件中配置数据库连接参数,以下是各个参数的详细解释:
hostname:数据库服务器的主机名或IP地址,通常是localhost。
username:用于连接数据库的用户名。
password:用于连接数据库的密码。
database:要连接的数据库名称。
dbdriver:数据库驱动程序,CI支持多个数据库驱动,如mysqli、pdo等。
db_debug:用于启用或禁用数据库调试,建议在开发阶段开启。

char_set和dbcollat:设置数据库的字符集和排序规则。
三、初始化数据库连接
配置文件保存后,CI框架会自动加载并初始化数据库连接,在控制器或模型中,只需加载数据库库类即可使用数据库功能。
在控制器中加载数据库
class Welcome extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->database(); // 加载数据库
}
public function index() {
$query = $this->db->get('table_name'); // 从表中获取数据
$data['results'] = $query->result();
$this->load->view('welcome_message', $data);
}
}在模型中加载数据库
class User_model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database(); // 加载数据库
}
public function get_users() {
$query = $this->db->get('users'); // 从表中获取数据
return $query->result_array();
}
}四、验证数据库连接
配置和初始化数据库连接后,可以通过运行简单的查询来验证连接是否成功,在控制器或模型中执行一个SELECT查询,并检查结果是否返回预期的数据。
public function test_connection() {
$query = $this->db->query('SELECT * FROM table_name LIMIT 1');
if ($query->num_rows() > 0) {
echo "Database connection successful!";
} else {
echo "Database connection failed.";
}
}五、其他数据库配置选项
CodeIgniter提供了多种数据库配置选项,以满足不同的开发需求,在某些情况下,可能需要连接多个数据库,可以在database.php文件中添加多个数据库组,然后在代码中动态选择连接的数据库组。
$db['group1'] = array(
'hostname' => 'localhost',
'username' => 'user1',
'password' => 'password1',
'database' => 'database1',
'dbdriver' => 'mysqli'
);
$db['group2'] = array(
'hostname' => 'localhost',
'username' => 'user2',
'password' => 'password2',
'database' => 'database2',
'dbdriver' => 'mysqli'
);在代码中选择不同的数据库组:
$this->load->database('group1'); // 连接到group1
$this->load->database('group2'); // 连接到group2六、使用Active Record类进行操作
CodeIgniter提供了Active Record类,使得数据库操作更加简单和直观,Active Record类允许你以面向对象的方式构建查询,而不需要直接编写SQL语句。

// 插入数据
$data = array(
'title' => 'My title',
'name' => 'My Name',
'date' => 'My date'
);
$this->db->insert('mytable', $data);
// 更新数据
$data = array(
'title' => 'My title',
'name' => 'My New Name',
'date' => 'My date'
);
$this->db->where('id', 1);
$this->db->update('mytable', $data);
// 删除数据
$this->db->where('id', 1);
$this->db->delete('mytable');
// 查询数据
$query = $this->db->get('mytable');
foreach ($query->result() as $row) {
echo $row->title;
}
echo "Total Results: " . $query->num_rows();七、通过模型与视图传递数据
通常通过模型(Model)从数据库中获取数据,然后通过控制器(Controller)将数据传递给视图(View),这种方法不仅清晰明了,还能更好地实现MVC架构的分离,便于维护和扩展,以下是一个示例:
创建模型(Model)
class User_model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database(); // 加载数据库
}
public function get_users() {
$query = $this->db->get('users'); // 从表中获取数据
return $query->result_array(); // 返回结果数组
}
}创建控制器(Controller)
class User extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('User_model'); // 加载模型
}
public function index() {
$data['users'] = $this->User_model->get_users(); // 获取数据
$this->load->view('user_view', $data); // 加载视图并传递数据
}
}创建视图(View)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User List</title>
</head>
<body>
<h1>List of Users</h1>
<ul>
<?php foreach ($users as $user): ?>
<li><?php echo $user['name']; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>运行应用程序
访问http://yourdomain.com/index.php/user,你应该能够看到从数据库中获取并传递到视图中的用户列表。
以上就是关于“ci model 数据库加载”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!