thinkphp数据库操作

一、执行原生的Mysql

1、query方法用于执行Mysql查询操作

namespace app\controller;

use app\BaseController;
use think\facade\Db;

class Index extends BaseController
{
    public function index()
    {
        $a = Db::query("select * from user where status=1");
        print_r($a);//打印数据
        var_dump($a);//输出带格式类型的
        dump($a);//带样式的输出
    }
}

下图是dump($a)的输出结果

 

 

 2、execute是用于执行Mysql新增和修改操作的

namespace app\controller;

use app\BaseController;
use think\facade\Db;

class Index extends BaseController
{
    public function index()
    {
//插入操作 $execute
= Db::execute("insert into user set `phone` = '1321546846',`u_name`='一灯大师'"); print_r($execute); echo"<br>";
//修改操作 $execute
= Db::execute("update user set `u_name` = '德莱文' where `uid`=6"); print_r($execute);
//删除操作
     $execute = Db::execute("delete from user where `u_name`='一灯大师'");
     print_r($execute);
} }

执行成功以后,返回值为1。

二、查询

1、单条数据查询find

如果find方法查询结果不存在,返回null,否则返回 结果数组

 

 2、多条数据查询select

select方法查询结果是一个二维数组,如果结果不存在,返回空数组。

 

 

 3、查询某个字段的值 value

value方法查询结果不存在,返回null

 

 

 4、查询某一列的值column

column方法查询结果不存在,返回空数组

 

 

三、添加

1、添加一条数据insert

insert方法添加数据成功返回添加成功的条数,通常情况返回1

 

 

 2、添加、修改一条数据save

save方法统一写入数据,自动判断是新增还是更新数据(以写入数据中是否存在主键数据为依据)

 

 

 其中uid就是主键。

3、添加一条数据insertGetId

insertGetId方法添加数据成功返回添加数据的自增主键。

 

 

 4、添加多条数据insertAll

insertAll方法添加数据成功返回添加成功的条数

 

 

 四、修改

1、修改数据update

update方法返回影响数据的条数,无任何修改数据返回 0

 

 

 2、自增inc

inc方法自增一个字段的值

 

 

3、自减dec

 

dec方法自减一个字段的值

 

 五、链式查询

1、where 方法主要用于数据库查询条件

where(’字段名‘,'查询表达式',’查询条件‘);

 

 

 2、table操作主要用来指定操作的数据表

 

 

 3、alias方法主要用于设置当前数据表的别名

 

 

 4、field方法主要作用是标识要返回或者操作的字段,可以用于查询和写入操作

withoutField字段排除

fieldRaw使用mysql函数

 

 

 5、order方法用于对操作的结果排序或者优先级限制

如果没有指定desc或者asc排序规则的话,默认为asc

 

 

 6、limit方法主要用于指定查询和操作的数量

 

 

 7、page方法主要用于分页查询

//查询第一页数据
Db::table('user')->page(1,10)->select();
//查询第二页数据
Db::table('user')->page(2,10)->select();

page不需要计算每个分页数据的起始位置,page中第一个值是页数,第二个是每页显示的数量。

page还可以和limit配合使用,例如

Db::table('user')->limit(25)->page(3)->select();

当page方法只有一个值传入的时候 ,表示第几页,而limit方法则用于设置每页显示的数量,其实就等同于:

Db::table('user')->page(3.25)->select();

8、join方法用于根据两个或多个表中的列之间的关系,从这些表中查询数据,join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。

 

 

 

 9、union操作用于合并两个或多个select语句的结果集

union内部的select语句必须拥有相同数量的列。列也必须拥有相似的数据类型,同时每天select语句中的列的顺序必须相同

 

 

 10、聚合查询

在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,ThinkPHP为这些统计操作提供了一系列的内置方法,包括:

 

 

获取用户中最大的岁数

 

 

Db::table('user')->max('age');

 

如果你要获取的最大值不是一个数值,可以使用第二个参数关闭强制转换

Db::table('user')->max('u_name',false);

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-10-04 19:58  kalistabc  阅读(695)  评论(0)    收藏  举报