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();