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

本文详细介绍如何在CodeIgniter框架中通过模型类操作数据库,包括连接数据库、增删改查等基本操作,并提供了一个完整的例子,展示了如何在控制器中调用模型方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、模型:
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

转载于:https://www.cnblogs.com/black-cat035/p/3140831.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值