下面是本文对于“CodeIgniter针对数据库的连接、配置及使用方法”的完整攻略。
1. CodeIgniter数据库配置
CodeIgniter支持多种数据库,并且在连接和使用数据库时非常方便。下面我们来讲解CodeIgniter配置数据库的方法。
1.1 配置文件
CodeIgniter的数据库配置文件位于application/config/database.php
下。打开该文件即可进行数据库的详细配置。
1.1.1 数据库类型
CodeIgniter支持的数据库类型有:MySQL、 MySQLi、 PostgreSQL、 ODBC 和 SQLite。可以在$db['default']['dbdriver']
配置项中指定数据库类型,表示使用哪一种数据库。例如,如果使用MySQL数据库,可以将dbdriver
的值设置为mysqli
,如下:
$db['default']['dbdriver'] = 'mysqli';
1.1.2 数据库名称、用户名以及密码
在进行数据库连接之前,我们需要知道要连接的数据库的名称、用户名以及密码。这一部分的配置项如下:
$db['default']['hostname'] = 'localhost'; // 数据库服务器名称
$db['default']['username'] = 'root'; // 数据库用户名
$db['default']['password'] = ''; // 数据库密码
$db['default']['database'] = 'test'; // 数据库名称
1.1.3 数据库表前缀
将所有数据表的前缀设置为某个值,可以在一定程度上保护我们的应用程序,防止SQL注入等攻击。这一设置项为:$db['default']['dbprefix']
。例如,可以将数据表前缀设置为ci_
:
$db['default']['dbprefix'] = 'ci_';
1.2 连接数据库
CodeIgniter利用内置的数据库库类提供了非常方便的数据库连接方法。连接数据库只需以下几个步骤:
1.2.1 加载数据库类
在使用数据库之前,我们需要先加载CodeIgniter的数据库类库:
$this->load->database();
1.2.2 连接至数据库
数据库类自动从配置文件中提取数据库的详细信息用于连接。连接数据库使用的命令行如下:
$this->db->connect();
如果需要手动关闭数据库连接,可以使用以下命令:
$this->db->close();
1.2.3 判断数据库是否连接成功
我们可以使用以下命令,来判断CodeIgniter是否已经成功连接了数据库:
if($this->db->conn_id){
//数据库连接成功后执行的操作
}
2. CodeIgniter数据库操作
在成功连接到数据库之后,我们可以通过CodeIgniter提供的数据库操作类来进行数据库的增删改查操作。
2.1 查询操作
CodeIgniter提供了多种查询方式,如:
- 查询所有数据:$this->db->get('table_name');
- 查询指定条件的数据:$this->db->get_where('table_name', ['field' => 'value']);
- 自定义SQL查询:$this->db->query('SELECT * FROM
table_name
');
以查询所有数据为例,代码如下:
class User_model extends CI_Model {
public function get_all_user() {
$query = $this->db->get('user');
return $query->result();
}
}
2.2 插入操作
使用以下命令将数据插入到表中:
$data = ['username' => 'test', 'password' => md5('password')];
$this->db->insert('user', $data);
上述例子中,将一个新用户插入到名为user的表中。第一个参数指定了表的名称,第二个参数是一个数组,包含了字段和值。
2.3 更新操作
使用以下命令将数据更新到表中:
$data = ['password' => md5('new_password')];
$this->db->where('username', 'test');
$this->db->update('user', $data);
上述例子中,将用户名为test的用户的密码更新为new_password。注意,where()方法用于指定更新条件,最后一个参数是要更新的数据。需要注意的是,如果不指定where()方法,则会默认将表中所有数据都进行更新。
2.4 删除操作
使用以下命令删除表中与指定条件匹配的数据:
$this->db->where('username', 'test');
$this->db->delete('user');
上述例子中,将用户名为test的用户从user表中删除。与更新操作类似,需要注意where()方法的使用。
3. 示例说明
在综合上述内容后,我们进行第一个示例:建立一个名为news
的表,包含news_id
和news_title
两个字段,并在表中插入一条记录。
- 创建表(在MySQL中操作)
CREATE TABLE `news` (
`news_id` int(11) NOT NULL AUTO_INCREMENT,
`news_title` varchar(255) NOT NULL,
PRIMARY KEY (`news_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 连接数据库(在CodeIgniter中操作)
在CodeIgniter的controllers目录下,创建一个名为Test.php的文件,并添加以下代码:
class Test extends CI_Controller {
public function index(){
// 加载数据库类
$this->load->database();
// 判断是否连接成功
if (!$this->db->conn_id) {
die("数据库连接失败!");
}
echo "数据库连接成功!";
}
}
在浏览器中输入:http://yourdomain.com/index.php/test 然后就可以测试是否连接成功。
- 插入一条记录(在CodeIgniter中操作)
class News_model extends CI_Model {
public function insert_data() {
// 插入数据
$data = ['news_title' => 'Codeigniter数据库操作'];
$this->db->insert('news', $data);
if ($this->db->affected_rows()){
return true;
} else {
return false;
}
}
}
我们可以创建一个名为news
的model, 并进行数据插入操作。
class Test extends CI_Controller {
public function index(){
// 加载数据库类
$this->load->database();
// 判断是否连接成功
if (!$this->db->conn_id) {
die("数据库连接失败!");
}
// 插入一条记录
$this->load->model('news_model');
if ($this->news_model->insert_data()){
echo "数据插入成功!";
} else {
echo "数据插入失败!";
}
}
}
访问 http://yourdomain.com/index.php/test/index 即可测试数据是否插入成功。
以上就是本文对于“CodeIgniter针对数据库的连接、配置及使用方法”的完整攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CodeIgniter针对数据库的连接、配置及使用方法 - Python技术站