Thinkphp6框架學習:有關數據庫的基本操作


本文將提到:

1.原生查詢操作的讀操作:query()

2.原生查詢操作的寫操作:insert/update/delete,execute()

3.查詢構造器

4.where()函數:可以根據其他字段查詢

5.order(),limit()函數

 


 

對於數據庫的配置在框架中app\config\database.php中已經配置好了,所以下面將默認已經連接上了數據庫

作為例子展示的數據表:

 


 

1.原生查詢操作的讀操作:query()

public function demo1()
    {
        $sql = "SELECT `userName` FROM `admin` WHERE `id`=:id ";
        $map = ['id' => 1];
        $res = Db::query($sql, $map);
        dump($res);//打印查詢結果$res
    }

 


 

2.原生查詢操作的寫操作:insert/update/delete,execute()

public function demo2()
    {
        $sql = "UPDATE `admin` SET `status`=:status WHERE `id`=:id ";
        $map = ['id' => 1, 'status' => 0];
        $res = Db::execute($sql, $map);
        return '成功更新了'.$res.'條記錄';
    }

數據表中 id=1 的 status從1變為0

 


 

3.查詢構造器

① find() : 返回滿足條件的第一條記錄,單條記錄;無返回null

//table():設置數據表
    //field():設置查詢字段列表
    public function demo3()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')
            ->find(2);//支持將主鍵作為參數:WHERE `id` = 2
        dump($res);
    }

 

②select() : 返回滿足條件的多條記錄

public function demo4()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')
            //注:select(2, 3)只返回第一條;select([2, 3])應放入數組中
            ->select();//同上
        dump($res);
    }

 


 

4 . where()函數:可以根據其他字段查詢

設置查詢條件 主要類型:字符串,表達式,數組

(1)字符串

public function demo5()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')//field()僅返回對應字段

            //1.字符串
            ->where('status > 0')
            ->select();
        dump($res);
}

 

(2)表達式

public function demo5()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')//field()僅返回對應字段

            //2.表達式:推薦
            ->where('id','between',[1,3])//參數格式:字段,操作符,值
            ->select();
        dump($res);
}

 

(3)數組

①關聯數組:等值查詢,AND

public function demo5()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')//field()僅返回對應字段

           // ①關聯數組
            ->where(['id' => 1, 'phone' => 123])
            ->select();
        dump($res);
}

打印sql語句看一下(在where()和select()中間插入下面代碼)

->fetchSql(true)

②索引數組:批量查詢

public function demo5()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')//field()僅返回對應字段

          //②索引數組
            ->where([
                // ‘0=>’ 索引值可以忽略,默認值
                0 => ['id','between',[1,3]],
                1 => ['status','>',0]
            ])

            ->select();
        dump($res);
}

 


 

5.order(),limit()函數

①單字段排序

//order(),limit()
    public function demo6()
    {
        $res = Db::table('admin')
            ->field('id, userName, phone')

            //單字段排序
            ->order('id', 'desc')//默認升序asc,desc:降序
            ->limit(2,2)//從第2行開始的2條數據,常用於分頁查詢

            ->select();
        dump($res);
    }

 

②多字段排序,用數組參數

講單字段排序中order()一行改為以下代碼即可

->order(['id'=>'asc', 'phone'=>'desc'])

 


免責聲明!

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



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