为了账号安全,请及时绑定邮箱和手机立即绑定

快速入门ThinkPHP 5.0 --模型篇

难度中级
时长 3小时 0分
学习人数
综合评分9.67
70人评价 查看评价
10.0 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • $db = Db::name('user1');

    #updata 数据更新 返回影响的行数

    // 与update不同的是setField每次只能更新一个字段

    $res = $db->where([

    'id' => 1

    ])->update([

    'username' =>  'xxx'

    ]);

    #setField  返回影响数据的行数 更新一个字段

    $res = $db->where([

    'id' => 2

    ])->setField('username','6666666');

    // $db -> where([key => value, key => value, ***])->setInc('INT字段', 自增数值默认1) 返回影响行数

    // $db -> where([key => value, key => value, ***])->setDec('INT字段', 自减数值默认1) 返回影响行数

    dump($res);



    查看全部
  • 添加数据:

    insert  返回值是影响记录的行数 插入数

    insertGetId  返回值插入数据的自增ID

    insertAll  返回插入数据成功的行数


    Db::name('不加前缀数据库名')->insert($一维数组) 返回值是影响记录的行数

    Db::name('不加前缀数据库名')->insertGetId($一维数组) 返回ID

    Db::name('不加前缀数据库名')->insertAll($二维数组)  返回成功插入行数

    <!-- Db::table 方法同上 -->

    Db::table('据库名')->insert($一维数组);

    或者用SQL语句插入Db::execute(SQL语句)

    二维数组[

           0 =>一维数组[key=>value]

                  ]


    查看全部
    0 采集 收起 来源:添加数据

    2019-04-25

  • #使用sql语句的方式查询数据库

    // $res = Db::query("select * from user where id=?",[5]);

    #插入语句

    // $res = Db::execute("insert into user set password=?,username=?,name=?,age=?",[

    // md5('password'),

    // 'bhfhgvbv',

    // 'love',

    // '22'

    // ]);

    #select 返回所有记录 返回的结果是一个二维数组

    // $res = Db::table('user')->select();

    #如果结果不存在 返回一个空数组

    // $res = Db::table('user')->where([

    //   'id'  => '100'

    // ])->select();


    #find 返回一条记录 返回的结果是一个一维数组

    #如果结果不存在 返回一个空数组

    // $res = Db::table('user')->find();


    #value 返回一条记录 并且是这条记录的某个字段值

    #如果结果不存在 返回NULL

    //   $res = Db::table('user')->value('name');


    #column 返回一个一维数组,数组中的value值就是我们要获取的列的值

    #如果存在第二个参数 就返回这个数组并且用第二个参数作为数组的key值

    #如果结果不存在 返回一个空数组

    // $res = Db::table('user')->column('name','username');

    // $res = Db::name('user')->select();

    $res = db('user',[],false)->find();

    dump($res);


    查看全部
  • 数据库的链接

    #第一种方式

    dump(config('database'));

    $res=Db::connect([

    'type'            => 'mysql',

    // 服务器地址

    'hostname'        => '127.0.0.1',

    // 数据库名

    'database'        => 'test',

    // 数据库用户名

    'username'        => 'root',

    // 数据库密码

    'password'        => 'root_pw',

    // 数据库连接端口

    'hostport'        => '',

    // 数据库编码默认采用utf8

    'charset'         => 'utf8',

    // 数据库表前缀

    'prefix'          => '',

    ]);

    dump($res);


    #第二种方式

    $res = Db::connect("mysql://root_xn:root@127.0.0.1:3306/course#utf8");

    dump($res);

    #第三种方式

    $res=Db::connect('db_config01');

    dump($res);


    查看全部
  • Db类查询的操作

    查看全部
  • <?php    
    namespace app\index\controller;    
    use think\Controller;    
    use app\index\model\User;    
    class index extends Controller{        
    public function index(){            
    $res = User::destroy(function($query){                
    $query->where('id','>',5);            });//可以传ID值或者闭包函数作为条件            
    dump($res);            
    $userModel = User::get(7);            
    $userModel->delete();           
    $res = User::where("1=1") ->delete();            
    dump($res);        
    }   
     }


    查看全部
  • tp里面更新数据的两种方式

    1.

    $model::where(array('字段'=>'值'))->update(array($change)); 

    或者如图所示;

    5be144600001119719201080-156-88.jpg

    <?php    
    namespace app\index\controller;    
    use think\Controller;    
    use app\index\model\User;    
    class Index extends Controller{        
    $data = [];        
    for($i=1;$i<21;$i++){
    $data[] = [
    'username'=>'zhangsan_'.$i,
    'password'=>md5('sdfa'._$i),                
    'age'=>$i];            
    $userModel = new User;            
    $userModel->saveAll($data);            
    dump($res);            
    $res = User::update([
    'username'=>'wangba',
    'age'=>15,               
    'id'=>15],function($query){                
    $query->where('id','LT',5);});//如果第一个参数不包含条件ID,第二个参数应该设置ID值或指闭包函数为更新条件            
    dump($res);            
    $res = User::where('id','<',6)->update([                  
    'username'=>'hehe']);            
    $userModel = User::get(1);            
    $userModel->username = "123";            
    $userModel->age = 110;            
    $usermodel = new User;            
    $res = $userModel->save(['username'=>'huhu'],function($query){                
    $query->where("id","<","5");});            
    $res = $usermodel->saveAll([['id'=>1,'username'=>'jingyao'],                
    ['id'=>2,'username'=>'lihong']            
    ]);        
    }   
     }
    查看全部
  • create([],true)自动排除数据库中不存在的字段,,true可为数组,设置为可允许字段的字段名

    $userModel=new User;

    $userModel->allowfield()->save()    另一种新增字段方式;

    create 添加一条数据,有两个参数,第一个为数组,要插入的字段和值,第二个参数为true时自动过滤不存在字段, 或者是以数组形式写入要添加的字段,返回值为对象;

    save 添加一条数据,两种书写方法,用allowField(true)来过滤不存在字段,也可以填写以数组的形式添加要添加的字段,返回值为受影响的行数;

    saveAll(二维数组) 添加多条数据,返回值为二维数组,value值为对象

    <?php    
    namespace app\index\controller;    
    use think\Controller;    
    use app\index\model\User;    
    class Index extends Controller{        
    public function index(){            
    $user = User::create([ 'username'=>'zhangsan', 'password'=>md5(123456),                'age'=>13            ],['username','age']);//第二个参数设置为true则只插入数据表中存在的字段,数组是允许插入的字段,不设置插入不存在的字段的时候会报错           
    dump($res->id);//返回插入的ID            
    $userModel = new User;            
    $userModel->username = "lisi";            
    $userModel->password = md5('sdfa');            
    $userModel->save();            
    dump($userModel->id);            
    $userModel = new User;            
    $res = $userModel->allowField(['username'])->save(["username"=>'wangba','password'=>md5('sdfs'), 
    'demo'=>123]);           
    $res = $userModel->saveAll([ ['age'=>17],['age'=>18]]);           
    foreach($res as $val){$arr = $val->toArray();                
    dump($arr);    
     }      
       }   
    }


    查看全部
  • 使用User::get(function($query)){$query->where()->field()}查询

    User::where()->field()->find()查询某一条  返回对象

    User::all(function($query){}获取多条记录,使用主键   返回对象

    User::where()->field()->limit()->order()->select();多条查询    返回对象

    User::where()->value()按字段查询一条   返回的是数组

    User::where()->column("email","username")以username为键的数组

    代码:

    <?php    

    namespace app\index\controller;    

    use think\Controller;    

    use app\index\controller\User;    

    class index extends Controller{        

    $res = User::get(function($query){            

    $query->where("username","eq","zhangsan")                  ->filed("username,email");        

    });        

    $res = User::where("id",12)->field("id,username")->find();         

    $res = User::all(function($query){             

    $query->where("id","<","15")                   ->select();         

    });         

    $res = User::where('id','>',"15")              

    ->field("username,email")->limit(3)->order('id DESC')->select();         

    foreach($res as $val){             

    $res->toArray();             

    dump($val->toArray());        

     }         

    $res = User::value('email');         

    $res = User::where('id','10')->value('email');         

    $res = User::column("email","username");         

    dump($res);  

     }



    查看全部
  • Model的使用方法


    use app\模块\model\模型类名


    1、$res = 模型类名::get(1);

    2、$user = new 模型类名;

       $res = $user::get(1);


    3、使用Loader

       use think\Loader;

       $user = Loader::model('模型类名');

       $res = $user::get(1);


    4、助手函数

       $user = model('模型类名');

       $res = $user::get(1);


    查看全部
    0 采集 收起 来源:什么是模型

    2019-04-10

  • whereOr 判断条件

    e.g.:$sql=$db->where("id","in","1,2,3")->whereOr("username","eq","17771258")->buildSql();

    $sql=$db->where([

    'id'=>['in',[1,2,3]],

    'username'=>'17771258'

    ])->buildSql();

    查看全部
    0 采集 收起 来源:条件构造器

    2019-04-10

  • buildSql();返回SQL语句

    where('字段名','表达式','查询条件');

    表达式 含义

    EQ、=        等于(=) 

    NEQ、<>  不等于(<>) 

    GT、>        大于(>) 

    EGT、>=    大于等于(>=) 

    LT、<                    小于(<) 

    ELT、<=                小于等于(<=) 

    LIKE                      模糊查询 

    [NOT] BETWEEN (不在)区间查询 

    [NOT] IN            (不在)IN 查询( 'id','in' ,'1,5,8'( [1,5,8] ) )

    [NOT] NULL 查询字段是否(不)是NULL 

    [NOT] EXISTS EXISTS查询 

    EXP 表达式查询,支持SQL语法 

    > time 时间比较 

    < time 时间比较 

    between time 时间比较 

    notbetween time 时间比较 

    <!-- Db::table  -->

    Db::table('据库名')->where()->buildSql();

    <!-- Db::name 方法同上 -->

    Db::name('不戴前置数据库名')->where()->buildSql();


    查看全部
    0 采集 收起 来源:条件构造器

    2019-04-03

  • 删除数据

    $db = Db::name('不加前缀的数据表名');

    $res = $db->where([key=>value, key=>value, ***]或者1=1删除全部)->delete(留空则用where,或者可以添加自增ID值删除)  返回影响行数


    查看全部
  • SQL:update 返回影响的行数

    $db=DB:name('user');

    $db->where([])->update([一维数组]);

    SQL:setField 返回影响数据的行数,每次只更新一个字段

    $db->where([])->setField ('字段名','值');

    $db->where([])->setInc($fieldname,$num);增加,不设置第二个参数默认为一

    $db->where([])->setDec($fieldname,$num);减少


    查看全部
  • 添加数据:

    insert  返回值是影响记录的行数 插入数

    insertGetId  返回值插入数据的自增ID

    insertAll  返回插入数据成功的行数


    Db::name('不加前缀数据库名')->insert($一维数组) 返回值是影响记录的行数

    Db::name('不加前缀数据库名')->insertGetId($一维数组) 返回ID

    Db::name('不加前缀数据库名')->insertAll($二维数组)  返回成功插入行数

    <!-- Db::table 方法同上 -->

    Db::table('据库名')->insert($一维数组);

    或者用SQL语句插入Db::execute(SQL语句)

    二维数组[

           0 =>一维数组[key=>value]

                  ]


    查看全部
    0 采集 收起 来源:添加数据

    2019-04-02

举报

0/150
提交
取消
课程须知
1、有一定的php基础。 2、对ThinkPHP5 有一定的了解。 3、没有接触过tp5 的学生可以先看下我之前录制的 <快速入门 ThinkPHP5 基础篇>
老师告诉你能学到什么?
1、ThinkPHP5 的数据库操作类 2、ThinkPHP5 的数据模型 3、使用数据模型快速对数据库进行增删改查的操作 4、ThinkPHP5 的自动完成操作 5、模型的自动时间戳和软删除

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!