开发学院

您的位置:首页>教程>正文

教程正文

CodeIgniter教程: 数据库(一)

  像任何框架一样,我们需要经常与数据库交互,CodeIgniter使这项工作对我们来说很容易。它提供了丰富的功能集来与数据库交互。

  在本节中,我们将了解CRUD(创建、读取、更新、删除)函数如何与CodeIgniter一起工作。我们将使用stud表来选择、更新、删除和插入数据。

   表名: stud,字段定义如下:

roll_no	int(11)
name	varchar(30)

连接到数据库

  我们可以使用两种方式连接到数据库

  自动连接:自动连接可以通过使用application/config/autoload.php文件来实现。自动连接将为每个页面加载数据库。我们只需要添加如下所示的数据库库

$autoload['libraries'] = array(‘database’);

  手动连接:如果您只想要部分页面的数据库连接,那么我们可以进行手动连接。我们可以通过在任何类中添加以下行来手动连接到数据库。

$this->load->database();

  在这里,我们不传递任何参数,因为一切都是在数据库配置文件application/config/database.php中设置的

插入记录

  要在数据库中插入记录,使用insert()函数,如下表所示。

语法

  insert([$table = ''[, $set = NULL[, $escape = NULL]]])

参数

  $table (string):表名

  $set (array):字段/值对的关联数组

  $escape (bool):是否转义值和标识符

返回

  成功返回true,失败返回false。

返回类型

  bool

  下面示例显示了如何在stud表中插入记录。$data是一个数组,我们已经在其中设置了数据,并且要将该数据插入到表中,我们只需要将该数组传递给第二个参数中的insert函数。

$data = array( 
   'roll_no' => ‘1’, 
   'name' => ‘Virat’ 
); 

$this->db->insert("stud", $data);

更新数据

  为了更新数据库中的记录,update()函数与set()和where()函数一起使用,如下表所示。set()函数将设置要更新的数据。

语法

  set($key[, $value = ''[, $escape = NULL]])

参数

  $key (mixed) :字段名或字段/值对的数组

  $value (string):字段值,如果$key是单个字段

  $escape (bool):是否转义值和标识符

返回

  CI_DB_query_builder实例(method chaining)

返回类型

  CI_DB_query_builder

  where()函数将决定要更新的记录。

语法

  where($key[, $value = NULL[, $escape = NULL]])

参数

  $key (mixed) :字段名或字段/值对的数组

  $value (string):字段值,如果$key是单个字段

  $escape (bool):是否转义值和标识符

返回

  DB_query_builder实例

返回类型

  object

  最后,update()函数将更新数据库中的数据。

语法

  update([$table = ''[, $set = NULL[, $where = NULL[, $limit = NULL]]]])

参数

  $table (string):表名

  $set (array) :字段/值对的关联数组

  $where (string):WHERE子句

  $limit (int):LIMIT子句

返回

  成功返回true,失败返回false。

返回类型

  bool

$data = array( 
   'roll_no' => ‘1’, 
   'name' => ‘Virat’ 
); 

$this->db->set($data); 
$this->db->where("roll_no", ‘1’); 
$this->db->update("stud", $data);

删除记录

  要删除数据库中的记录,请使用delete()函数,如下表所示。

语法

  delete([$table = ''[, $where = ''[, $limit = NULL[, $reset_data = TRUE]]]])

参数

  $table (mixed):要删除数据的表。

  $where (string):WHERE子句

  $limit (int):LIMIT子句

  $reset_data (bool):如果为真,则重置查询“write”子句

返回

  成功返回CI_DB_query_builder实例 (method chaining) ,失败返回false。

返回类型

  mixed

  使用以下代码删除stud表中的记录。第一个参数指示要删除记录的表名,第二个参数决定要删除哪个记录。

  $this->db->delete("stud", "roll_no = 1");

选择记录

  要在数据库中选择一条记录,需要使用get函数,如下表所示。

语法

  get([$table = ''[, $limit = NULL[, $offset = NULL]]])

参数

  $table (string):要查询的表数组

  $limit (int):LIMIT子句

  $offset (int):OFFSET子句

返回

  CI_DB_result实例(method chaining)

返回类型

  CI_DB_result

  使用以下代码从数据库中获取所有记录。第一条语句从“stud”表中获取所有记录,并返回对象,该对象将存储在$query对象中。第二条语句使用$query对象调用result()函数,以数组形式获取所有记录。

$query = $this->db->get("stud"); 
$data['records'] = $query->result();

关闭数据库连接

  通过执行以下代码,可以手动关闭数据库连接。

$this->db->close();