tp5数据库查询

2023-08-08 13:21:07 浏览数 (2)

tp5数据库查询 注: 打印出最后一条数据库操作的sql语句 echo Db::getLastSql();

1.使用table方法查询

代码语言:javascript复制
use thinkDb;
//查询所有数据
$data = Db::table('user')->select();
//查询一条数据
$data = Db::table('user')->find();

2.使用name方法查询

代码语言:javascript复制
use thinkDb;
//查询所有数据
$data = Db::name('user')->select();
//查询一条数据
$data = Db::name('user')->find();

table和name的区别: name方法会自动添加表前缀

3.助手函数查询db()

代码语言:javascript复制
$data = db('user')->select();
$data = db('user')->find();

统计数据库条数

代码语言:javascript复制
$data = db('user')->field('count() as tot')->select();
$data = table('user')->field(['count()'=>'tot'])->select();

Group分组聚合

//根据pass字段进行分组统计(pass相同 的数量)

代码语言:javascript复制
$data = db('user')->field('pass,count(*) as tot')->group("pass")->select();

having过滤只能配合group分组使用

代码语言:javascript复制
$data =  db('user')->field('pass,count(*) as tot')->having('tot >= 2')->group("pass")->select();

union集合

//打印出user表跟goods表中的name(分开)

代码语言:javascript复制
$data = Db::field("name")->table("user")->union("select name from goods")->select();

bind绑定参数(防止sql注入)

$id = input(“id”); //删除的时候规定接收的id只能是 int类型

代码语言:javascript复制
$data = Db::table("user")->where("id",":id")->bind(["id"=>[$id,PDO::PARAM_INT]])->select();

统计数据

代码语言:javascript复制
//年龄最大值
$data = db('user')->max('age');
//年龄最小值
$data = db('user')->min('age');
//年龄平均值
$data = db('user')->avg('age');
//求和
$data = db('user')->sum('age');
//统计数据条数
$data = db('user')->count('age');

4.视图查询(相当于多表查询)

代码语言:javascript复制
//视图查询
$data  = Db::view('goods','id,name') //查询出goods表的id跟name字段
				 ->view('type','name','type.id=goods.cid','left')//查询type表的name字段,type表的id等于goods表的cid,左查询
                 ->select();
                 
 //打印出最后执行的sql语句
 echo Db::getLastSql();
 
 //打印出查询出来的数据
 dump($data);

修改

代码语言:javascript复制
->update ( ['title' => '新标题'])

0 人点赞