Thinkphp6框架学习:有关数据库的基本操作

放肆的年华 提交于 2021-02-02 04:38:43

本文将提到:

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'])

 

原文出处:https://www.cnblogs.com/yi2105/p/11532215.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!