thinkphp5.1學習過程七——數據庫操做

<?php


namespace app\index\controller;
use think\Db;
/**
 * Class Demo5
 * @package app\index\controller
 * 查詢構造器
 * 準備工做:app_debug=>'true';app_trace='true';
 * 系統學習數據據庫的增刪改查:CURD
 */
class Demo5
{
    //1.單條查詢
    public function find()
    {
        /**
         * Db類數據庫操做的入口類
         * 功能:靜態調用think\db\query.php類中的查詢方法實現基本操做
         * table():選擇數據表
         * where():設置查詢條件 表達式,數組
         * 1.單個條件 使用表達式
         * 2.對於多個條件使用數組
         * find()返回符合條件的第一條記錄,沒有的話返回NULL
         */
        $res=Db::table('blog')
            //->field('id,name,content')
            //->field(['id'=>'asdf','name'=>'qwer','content'=>'zxcv'])
            ->where('id','=',1)//若是是相等關太詳細,=可省略
            ->find();
        dump(is_null($res)?'沒有找到':$res);
    }
    //2.多條查詢
    public function select()
    {
        //select()返回的是一個二維數組,沒有數據返回是一個空數據
        $res=Db::table('blog')
            ->field('id,name,title')
            ->where([
                ['user_id','=','0'],
                ['category_id','>=',0]
            ])
            ->select();
        if(empty($res)){
            return '沒有知足條件的記錄';
        }else{
            foreach($res as $row){
                dump($row);
            }
        }
    }
    //單條插入
    public function insert()
    {
        //insert()成功返回新增的數量,失敗返回false
        //準備一下要插入的數據
        $data=[
            'name'=>'js1',
            'title'=>'js學習',
            'content'=>'如今學習js框架',
            'user_id'=>0,
            'category_id'=>1,
            'recommend'=>1,
            'read_count'=>0,
            'create_time'=>time(),
            'update_time'=>time(),
            'publish_time'=>time(),
        ];
        //return Db::table('blog')->insert($data);
        //只有數據庫類型爲MYSQL的時候,才能夠傳入true
        //return Db::table('blog')->insert($data,true);
        //這樣作能夠提升對數據的安全處理,insert中不支持true
        //return Db::table('blog')->data($data)->insert();
        //插入的同時返回新增主鍵ID,insertGetId()同時執行兩步,第一步插入,第二步返回主鍵主id
        return Db::table('blog')->insertGetId($data);
    }
    //4.添加多條
    public function insertAll()
    {
        $data=[
            ['name'=>'js2','title'=>'js2學習','content'=>'如今學習js框架','user_id'=>0,
                'category_id'=>1,'recommend'=>1,'read_count'=>0,'create_time'=>time(),
                'update_time'=>time(),'publish_time'=>time(),],
            ['name'=>'js3','title'=>'js3學習','content'=>'如今學習js框架','user_id'=>0,
                'category_id'=>1,'recommend'=>1,'read_count'=>0,'create_time'=>time(),
                'update_time'=>time(),'publish_time'=>time(),],
            ['name'=>'js4','title'=>'js4學習','content'=>'如今學習js框架','user_id'=>0,
                'category_id'=>1,'recommend'=>1,'read_count'=>0,'create_time'=>time(),
                'update_time'=>time(),'publish_time'=>time(),],
        ];
       // return Db::table('blog')->insertAll($data);
        return Db::table('blog')->data($data)->insertAll();
    }
    //更新操做
    public function update()
    {
        //update()必需要有更新條件
        //return Db::table('blog')
            //->where('id','=',13)
            //->update(['name'=>'html']);
        //若是更新條件是主鍵的話,能夠直接把主鍵寫到更新數組中
        return Db::table('blog')
            ->update(['name'=>'css','id'=>12]);
    }
    //刪除操做
    public function delete()
    {
       // return Db::table('blog')
            //->delete(13);
        return Db::table('blog')
            ->where('id',12)
            ->delete();
    }
    //原生查詢
    public function query()
    {
        $sql="SELECT 'name','title' FROM blog WHERE id IN(1,2,3)";
        dump(Db::query($sql));
    }
    //原生寫操做:更新,刪除,添加
    public function execute()
    {
//        return Db::execute("UPDATE blog SET name='css' WHERE id=11");
//        return Db::execute("INSERT blog SET name='asp'");
        return Db::execute("DELETE FROM blog WHERE id=11");
    }
}
相關文章
相關標籤/搜索