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' => '新标题'])