Blogger Information
Blog 46
fans 2
comment 0
visits 19131
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1、Thinkphp 数据库 高级查询练习 2、thinkphp 请求练习
P粉314265155
Original
443 people have browsed it

Thinkphp 数据库 高级查询练习 thinkphp 请求练习

`
// 访问路径 http://bite.com/Index.php/index/two
public function two(){
// 1 where 条件
// 等号 = 如果是 =可以省略第二个参数 < > >= <=
// $user = Db::table(‘lh_user’) -> where(‘uid’,3) -> select ();

  1. // $user = Db::table('lh_user') -> where('uid', '>',3) -> select ();
  2. // print_r($user);
  3. // 1.2 模糊查询 LIKE 不是 = 不能把直接写的值 必须处理

// $user = Db::table(‘lh_user’) -> where(‘name’,’like’,’小狗’) ->select();
// print_r($user);
// % 可以代替任意的文本任意的长度 可以放到 狗的前面侯曼
// 如果不知道 查询位置 两边都要加 %
// $user = Db::table(‘lh_user’) -> where(‘name’,’like’,’%狗’) ->select();
// print_r($user);
// 1.3 notlike 模糊查询 不包含的
// $user = Db::table(‘lh_user’) -> where(‘name’,’notlike’,’%狗’) ->select();
// print_r($user);
// 1.4 BETWEEN 区间查询 notbetween 区间取反
// $user = Db::table(‘lh_user’) -> where(‘uid’,’between’,’3,10’) ->select();
// print_r($user);

// 1.5、 IN 指定查询 notin
// $user = Db::table(‘lh_user’) -> where(‘uid’,’in’,’3,4’) ->select();
// print_r($user);
// 1.6 <> 不等于
// $user = Db::table(‘lh_user’) -> where(‘uid’,’<>’,’3’) ->select();
// $user = Db::table(‘lh_user’) -> where(‘uid’,’<>’,’3,4’) ->select();
// print_r($user);

// 2、 field 返回值 只返回 uid name
// $user = Db::table(‘lh_user’) -> field(‘uid,name’) ->select();
// print_r($user);
// 可以使用数组的形式传值
// $arr= [
// ‘uid’,
// ‘name’,
// ];
// 改变下标的名称
// $arr= [
// ‘uid’ =>’dd’,
// ‘name’ => ‘me’,
// ];
// $user = Db::table(‘lh_user’) -> field($arr) ->select();
// print_r($user);

// 2.1 如果 字段比较多 其中几个不变 可以使用更加便捷的方法 withoutField 剔除一些查询数据

// $arr= [
// ‘uid’,
// ‘name’,
// ‘phone’,
// ];
// $user = Db::table(‘lh_user’) -> withoutField($arr) ->select();
// print_r($user);

// 3、 order 排序 order by 倒序 正序
// 参数 1 字段名 参数 2 排序类型 desc asc
// 倒序 从大到小
// $user = Db::table(‘lh_user’) -> order(‘uid’ ,’DESC’) ->select();
// 正序 从小到大
// $user = Db::table(‘lh_user’) -> order(‘uid’ ,’ASC’) ->select();
// 第一排序 第二排序
// $user = Db::table(‘lh_user’) -> order(‘last_time’ ,’ASC’)-> order(‘uid’ ,’ASC’) ->select();
// print_r($user);
// 4、以上学习的db 方法 可以一起使用 :链式操作
// $user = Db::table(‘lh_user’) -> field(‘uid,name’)->where (‘uid’,’>’,3) -> order(‘last_time’ ,’ASC’)-> order(‘uid’ ,’ASC’) ->select();
// print_r($user);
// 5、可以返回最后执行的 mysql原生语句 getlastSql

// $user = Db::table(‘lh_user’) -> field(‘uid,name’)->where (‘uid’,’>’,3) -> order(‘last_time’ ,’ASC’)-> order(‘uid’ ,’ASC’) ->select();
// echo Db:: getlastSql();
// echo’<hr>‘;
// print_r($user);

// 6、Db语句不执行 只返回 mysql 原生语句
// $user = Db::table(‘lh_user’) -> field(‘uid,name’)->where (‘uid’,’>’,3) -> order(‘last_time’ ,’ASC’)-> order(‘uid’ ,’ASC’)->fetchSql() ->select();
// 比如 对数据库 添加、修改、对数据可以进行修改的 语句 可以先看下语句
// print_r($user);

// 7、分页 limit
// 第一个参数 是从多少条
// 第二个参数 取出多少条
// $user =Db::table(‘lh_user’)->limit(5,3)->select();
// print_r($user);
// 1个参数 取出多少条 默认 从 uid 第一个
// $user =Db::table(‘lh_user’)->limit(3)->select();
// print_r($user);

// 得出
// $p =$_GET(‘p’); 第一次接受 0 第二次 是 $p5 ….
// $p =$p
5;
// $user =Db::table(‘lh_user’)->limit($p,5)->select();

// 8、TP自带分页 page()方法 两个参数
// 第一个 参数 第几页
// 第二个参数 取出 多少条
// 第一页
// $user =Db::table(‘lh_user’)->page(1,5)->select();
// print_r($user);
// 第二页
// $user =Db::table(‘lh_user’)->page(2,5)->select();
// print_r($user);

// 9、聚合查询
// lh_user 要知道这个表里面多少数据
// 9.1 count () 计算总共多少数据 推荐
// $user =Db::table(‘lh_user’)->count();
// print_r($user);

// php方法
// $user =Db::table(‘lh_user’)->select() -> toArray();
// echo count($user);
// print_r($user);

// 9.2 9.3 最大 最小值 max min
// 排行版 就可以用这个完成,和count()配合使用

// $user =Db::table(‘lh_user’)->max(‘uid’);
// $user =Db::table(‘lh_user’)->min(‘uid’);
// print_r($user);

// 10 、 where 多条 AND 满足左右两边的条件
// $user =Db::table(‘lh_user’)->where(‘uid’,’>’,3) ->where(‘uid’,’<’,8) -> select();
// echo Db:: getlastSql();
// print_r($user);

// $user =Db::table(‘lh_user’)->where([
// [‘uid’,’>’,3],
// [‘uid’,’<’,6]
// ]) -> select();
// echo Db:: getlastSql();
// print_r($user);

// 11、 or 提供了 whereOr方法
// 这里可以多个条件
// $user =Db::table(‘lh_user’)->where(‘uid’,’=’,3) ->whereOr(‘uid’,’=’,8) -> select();
// echo Db:: getlastSql();
// print_r($user);
// 写成数组或者 多个whereOr 都支持
// $user =Db::table(‘lh_user’)->where(‘uid’,’=’,3) ->whereOr(‘uid’,’=’,2)->whereOr(‘uid’,’=’,1) -> select();
// echo Db:: getlastSql();
// print_r($user);

// 12、时间查询 whereTime方法提供了日期和时间字段的快捷查询

// 12 、访问 其他数据库的表,多数据库操作、
// $user = Db::connect(‘dsp’)->table(‘lh_user’) ->select();
// echo Db:: getlastSql();
// print_r($user);

// 13 、数据处理
// 13.1 toArray 把返回的数据
// $user = Db::connect(‘dsp’)->table(‘lh_user’) ->select()->toArray();
// echo Db:: getlastSql();
// print_r($user);
// 13.2 isEmpty 判断 数据是否为 空
// $ret = Db::table(‘lh_user’) ->where(‘uid’,1)->select();
// 如果是对象 isEmpty 判断
// if($ret -> isEmpty()){
// echo ‘结果为空’;
// }else{
// echo ‘结果不为空’;
// }
// 如果是 数组 empty 判断
// if(empty($ret)){
// echo ‘结果为空’;
// }else{
// echo ‘结果不为空’;
// }

// 13.3 合并其他数据 merge 支持不同数据库 不同表结果的合并
// $ret1 = Db::table(‘lh_user’) ->where(‘uid’,1)->select();
// $ret2 = Db::table(‘lh_user’) ->where(‘uid’,2)->select();
// $ret = $ret1->merge($ret2);
// print_r($ret);

// 13.4 数据集 https://www.kancloud.cn/manual/thinkphp6_0/1037576
// pop 删除最后一个元素
// shift 删除第一个元素
// unshift 在开头插入一个元素

// $ret = Db::table(‘lh_user’)->select();
// print_r($ret ->where(‘uid’,2));

// 14、 name 的参数就是表名
// 与table的区别在 config/database.php 中prefix 表前缀的区别
// name 可以简写 不写表前缀 但是一定要配置
// table不能使用表前缀 ,建议使用 table 、
// $ret = Db::name(‘user’)->select();
// print_r($ret);

// time() -3060 30分钟之前的时间戳
// $time = time() -30
60 ;
// $delete = Db::table(‘lh_user’) ->where(‘last_time’,’<’,$time)->delete();

// 15、 请求 https://www.kancloud.cn/manual/thinkphp6_0/1037519
// print_r($_GET); //全局变量 安全问题未考虑
// tp 把请求做了一个类 Request 更安全 使用时 要引入门面类 use think\facade\Request;
// print_r(Request::get()) ;
// use think\Request; 普通类 需要依赖注入 new等
// use think\facade\Request; 门面类 静态的 推荐 简单方便

// print_r(Request::param())
// post可以接收 post
// http://www.bite.com/index.php/index/two 是一个简单的接口
// 我们要把php写成接口 给前端使用
// $name= Request::post();
// echo $name;
// print_r($name);
// 结果
// Array
// (
// [id] => 111
// [name] => lh
// )
// 前端人员,可能是 用户/坏人/竞争对手 不知道会给你传什么数据
// 需要自己剔除非法数字
// /d 修饰符 接收到的数值变为 整数
// /s 接收到的数值变为字符串
// /b 接收到的数值变为布尔
// /a 接收到的数值变为数组
// /f 接收到的数值变为浮点
// $post= Request::post(‘id/d’);
// print_r($post);

}

`

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:Tp的两次作业检查一下,markdown中代码块的使用
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!