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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM