zoukankan      html  css  js  c++  java
  • Thinkphp6框架学习:有关数据库的基本操作

    本文将提到:

    1.原生查询操作的读操作:query()

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

    3.查询构造器

    4.where()函数:可以根据其他字段查询

    5.order(),limit()函数


    对于数据库的配置在框架中appconfigdatabase.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'])
    ——但少闲人,所以等等。
  • 相关阅读:
    2020-2021-1 20209314《Linux内核原理与分析》第七周作业
    2020-2021-1 20209314《Linux内核原理与分析》第六周作业
    2020-2021-1 20209314《Linux内核原理与分析》第五周作业
    2020-2021-1 20209314《Linux内核原理与分析》第四周作业
    2020-2021-1 20209314《Linux内核原理与分析》第三周作业
    选做题MyOD 20209314
    2020-2021-1 20209314《Linux内核原理与分析》第二周作业
    2020-2021-1 20209322《Linux内核原理与分析》第十二周作业
    2020-2021-1 20209322《Linux内核原理与分析》第十一周作业
    2020-2021-1 20209322《Linux内核原理与分析》第九周作业
  • 原文地址:https://www.cnblogs.com/yi2105/p/11532215.html
Copyright © 2011-2022 走看看