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);

浙公网安备 33010602011771号