时间:2021-07-01 10:21:17 帮助过:5人阅读
在使用数据库前,需要使用装载器来加载数据库对象
$this->load->database();
装载完成后,$this->db就是这个数据库对象,以后的数据操作都是调用这个对象的方法进行
首先定义SQL语句:
$sql = ‘SELECT * FROM user‘;
再调用db对象的query方法进行查询
$result = $this->db->query($sql);
返回值$result是一个对象,通过调用它的方法可以返回不同形式的结果,例如:调用它的result()方法获取查询结果
$users = $result->result();
此时,$users是一个对象数组,或者调用它的result_array()方法获取关联数组查询结果
$users = $result->result_array();
调用row()方法以对象形式返回第一条记录或第几条记录
$users = $result->row();
但是,如果SQL是增、删、修改语句,query()方法将返回TRUE或FALSE,此时通过db的方法可以获取执行的结果,比如:
$this->db->affected_rows(); // 获取影响的行数 $this->db->insert_id(); // 获取插入数据的id
在执行数据库操作前,由于不知道在查询前$this->db是否已经生成,因此都需要调用$this->load->database()方法,通过修改/application/config/autoload.php文件,可以让CI自动加载数据库
$autoload[‘libraries‘] = array(‘database‘);
如果SQL语句中的变量过多,会影响语句的编写,这时可以采用占位符来解决
$data[0] = ‘dj‘; $data[1] = ‘123456‘; $sql = "INSERT INTO user (account, password, usertype, username) VALUES (‘1231‘, ?, ‘1‘, ?)"; $result = $this->db->query($sql, $data);
传入的数组中的元素会依次取代SQL中的?,生成实际的SQL语句
备注:在测试这段代码时,由于错误的在字段名两侧加上了’,造成一直报错,引以为戒
CodeIgniter学习笔记(七)——CI中的数据库操作
标签: