CodeIgniter学习笔记(3)-----模型介绍__例子__数据的增删改查

一、模型:
1.模型是一个数据库类
2.一个模型针对一张表
3.类中的方法是针对功能的具体需求而做的

模型存放目录 /models/
创建目录就是创建一个类文件:必须继承数据核心类CI_Model,同时重载父类中的构造方法

 class Model_name extends CI_Model
{
    function _construct()
    {
        parent::_construct();
    }
}

二、利用CI 创建模型

ci提供数据库函数类 Active Record 类 \system\database\DB_active_rec.php
在模型中使用Active Record类中的方法 $this -> db -> 方法名() 例:$this ->db->get('entries',10);

三、利用CI模型操作数据库

链接数据库(写在构造函数里面,加载的同时连接了数据库)

$this->load->database(); 

插入数据

$this->db->insert($t_name,$data);//$t_name要操作的表,$data要插入的数据(键名=字段名,键值=字段值)

更新数据

$this->db->where(字段名,字段值) //定位
$this->db->update(表名,修改值得数组);

删除数据

$this->db->where(字段名,字段值);
$query=$this->db->delete(表名);

查询数据

$this->db->where(字段名,字段值);
$this->db->select(字段);
$query=$this->db->get(表名);
return $query->result();

四、在控制器中调用模型

$this->load->model(模型)
$this->模型名->方法名

五、例子对数据库表增删改查

模型

class Test_m extends CI_Model {

     function _construct()  
    {
        parent::_construct();//重载父类构造
        $this->load->database();//加载数据库
    }
    function  user_insert($arr)
    {
        $this->db->insert('user',$arr);
    }
    function  user_update($id,$arr)
    {
        $this->db->where('uid',$id);//定位
        $this->db->update('user',$arr);
    }
    function user_del($id){
        $this->db->where('uid',$id);
        $this->db->delete('user');
    }
    function  user_select($id){
        $this->db->where('uid',$id);
        $this->db->select('*');
        $query=  $this->db->get('user');
        return $query->result();
    }
}

控制器

class User extends CI_Controller {
    function insert(){ //插入
        $this->load->model('test_m');
        $arr = array('uname'=>'u1','upass'=>'1234');
        $this->test_m->user_insert($arr);
    }
    function update(){//更新
        $this->load->model('test_m');
        $arr = array('uname'=>'u1','upass'=>'123');
        $this->test_m->user_update( 1 ,$arr);
    }
    function  del(){//删除
        $this->load->model('test_m');
        $this ->test_m->user_del(1);
    }
    function  select(){
        $this->load->model('test_m');
        $array=$this->test_m->user_select(2);
        //var_dump($array); 打印变量的相关信息
        echo  $array[0]->uid;
    }
}

注意:

操作数据库前 现对数据库配置文件进行设定:config,database
$db['default']['username'] = 'root';
$db['default']['database'] = 'ci'; 创建的数据库名称

最开始时遇见一个bug:Call to a member function insert() on a non-object

解决:在config ,autoload文件里$autoload['libraries'] = array('database'); 参数database

posted on 2013-06-17 18:05  Grey原  阅读(1167)  评论(0)    收藏  举报

导航