沃梦达 / IT编程 / 数据库 / 正文

CodeIgniter针对数据库的连接、配置及使用方法

下面是本文对于“CodeIgniter针对数据库的连接、配置及使用方法”的完整攻略。

下面是本文对于“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_idnews_title两个字段,并在表中插入一条记录。

  1. 创建表(在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;
  1. 连接数据库(在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 然后就可以测试是否连接成功。

  1. 插入一条记录(在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针对数据库的连接、配置及使用方法