tp5数据库操作 Db类

一、链接数据库

  1.配置文件定义  application\database.php

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

  2.类定义

 

二、数据库的基本使用

    namespace app\demo\controller;
    use think\Db;
    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()

猜你喜欢

转载自www.cnblogs.com/SSs1995/p/9426397.html