• tp5数据库操作 Db类


    一、链接数据库

      1.配置文件定义  applicationdatabase.php

        注意:数据表前缀更改,在文件的prefix选项

      2.类定义

     

    二、数据库的基本使用

        namespace appdemocontroller;
        use thinkDb;
        class Ceshi{
            public function sql(){
                //1.使用系统Db类
                $data = Db::table('ceshi')->select();
                //2.使用sql语句
                $data = Db::query('select * from ceshi');
                dump($data);
            }
        }

    三、数据查询

      1.table方式

        查所有  Db::table('ceshi')->select();

        查一条  Db::table('ceshi')->find();

      2.name方式

        查所有  Db::name('ceshi')->select();

        查一条  Db::name('ceshi')->find();

      区别:name方式会在表名前自动加设置的前缀

      3.助手函数

        db('ceshi')->select();

        db('ceshi')->find();

      注意:助手函数同样会加前缀

    四、条件查询

      注意:条件的顺序可以随意,如6

      1.范围查询 

        $data = db('ceshi')
                ->where('id','>','1')
                ->where('id','<','3')
                ->select();
        dump($data);

      2.多条件查询(并且 where)

        $data = db('ceshi')
                ->where('id','>','1')
                ->where('pin','=','lisi')
                ->select();
        dump($data);

      3.多条件查询(或者 whereOr)

        $data = db('ceshi')
                ->where('id','=','1')
                ->whereOr('id','=','3')
                ->select();
        dump($data);

      4.模糊查询

        $data = db('ceshi')
                ->where('id','>','1')
                ->where('pin','like','li%')
                ->select();
        dump($data);

      5.limit截取查询

        $data = db('ceshi')
                ->where('id','>','0')
                //跳过几条取几条,一个参数为显示几条
                ->limit(1,2)
                ->select();
        dump($data);

      6.order排序

        $data = db('ceshi')
                ->where('id','>','0')
                //跳过几条取几条,一个参数为显示几条
                ->limit(1,2)
                ->order('id','desc')
                ->select();
        dump($data);

      7.field查询字段

        $data = db('ceshi')
                ->where('id','>','0')
                //查询的字段名
                ->field(['id','pin'])
    //            //或者,第二种写法
    //            ->field("id,pin")
                ->select();
        dump($data);

      8.更改字段名

        $data = db('ceshi')
                ->where('id','>','0')
                //将显示的字段名id更改为uid
                ->field(['id'=>'uid','pin'])
    //            //或者,第二种写法
    //            ->field("id uid,pin")
                ->select();
        dump($data);

      9.系统函数

        $data = db('ceshi')
                ->where('id','>','0')
                //将显示的字段名id更改为uid
                ->field(['count(*)'=>'num','pin'])
    //            //或者,第二种写法
    //            ->field("count(*) as num,pin")
                ->select();

      10.排除字段

        $data = db('ceshi')
                ->where('id','>','0')
                //不显示name字段
                ->field(['name'],true)
    //            //或者,第二种写法
    //            ->field("name",true)
                ->select();

      11.分页查询

        $data = db('ceshi')
                ->where('id','>','0')
                //显示,第几页的,几条
                ->page("2,2")
                ->select();

      12.group 分组查询

        $data = db('ceshi')
                ->where('id','>','0')
                ->group('id')
                ->select();

      13.having 过滤查询

      ->having("id > 2")

      14.多表联查

        $data = db('ceshi')
                //查找的字段
                ->field('ceshi.*,ceshi2.name')
                //连表2,on后面的条件,第三参数可不写,left和right为左连接,右连接
                ->join('ceshi2','ceshi1.pin = ceshi2.pin','left')
                ->select();

      15.表名起别名 (表名后 空格 别名)

      16.参数绑定

        $data = db('ceshi')
                //占位
                ->where('id',':id')
                //参数绑定
                ->bind(["id"=>"1"])
                ->select();

      17.数据统计

      ->sum('字段名')

       可选sum max min avg count等

    五、数据增加

        $sql = [
            ['id'=>'5','pin'=>'zhaoliu','name'=>'赵六'],
            ['id'=>'6','pin'=>'zhaoliu','name'=>'赵六']
        ]
        $data = db('ceshi')
                ->insertAll($sql);

    若插入一条,则$sql 写一维数组, insertAll改为insert

      注意:插入数据的字段名必须和数据库一致

    六、数据更新

        $data = db('ceshi')
                //等号可不写
                ->where('id',4)
                //更改的数据
                ->update(['name'=>'a','pin'=>'a']);

      自增

        ->setInc('字段名')

      自减

        ->setDec('字段名',每次减几)

    七、删除数据(四种方式,不带字段名的为id主键的值)

      ->where('id',1)->delete()

      ->where("id in(1,2,3)")->delete()

      ->delete([1,2,3])

      ->where("id>2 and id <4")->delete()

  • 相关阅读:
    如何实现LRU缓存淘汰算法
    排序算法(上)
    MySQL为什么有时候会选错索引?
    mysql开启慢查询——wamp
    普通索引和唯一索引,应该如何选择
    php开发常用插件
    mysql批量添加大量测试数据
    .text()设置文本,.html()设置html, .val()设置值的使用
    ajax .load()方法
    jquery学习笔记一之window.onload与$(document).ready()区别
  • 原文地址:https://www.cnblogs.com/SSs1995/p/9426397.html
Copyright © 2020-2023  润新知