zoukankan      html  css  js  c++  java
  • ThinkPhp框架的数据库操作(查询)

    TP框架有一套自己的数据库操作的代码,包括数据库的增、删、改、查。本文主要讲解TP框架的数据库查询操作。

    找到入口文件的控制器:

    我这里的入口文件是Show文件夹下的控制器。

    打开Login控制器。

    代码写在index方法中。

    数据库的定义方式有三种。

    前两种要写模型函数,最后一种不需要。

    模型的例子(放在Model文件夹下,名字与类名相同,本例的名字:UserModel.class.php)

    <?php
    namespace AdminModel;
    use ThinkModel;
    class UserModel extends Model
    {
    
    
    
    }
    

    方法一:

    $user = new AdminModelUserModel();   //表名为user,大小写一致。
    $at = $user->select();                   //查询此表的所有数据。
    var_dump($at);                       //显示数据
    

    显示结果:

    方法二:

    $user= D("user");
    $at = $user->select();
    var_dump($at);
    

     此方法可自动找到此命名空间中的对应模型,效果与第一种相同。

    方法三(此方法不用创建模型文件,自动造模型):

    $user= M("user");                 //自动造模型
    $at = $user->select();
    var_dump($at);
    

    效果与以上两种相同。

    数据库查找:

    首先造模型:

    $user= M("user");
    

      

    查询数据(所有):

    $at = $user->select();
    var_dump($at);
    

    查一条数据:

    $at = $user->find("admin");      //根据主键值admin查找一条数据
    var_dump($at);
    

    结果:

    只会显示一条数据。

    条件查询:

    $at = $user->where("uid='admin'")->select();    //查找uid为admin的数据
    var_dump($at);
    

      

    结果:

    切换数据表:

    $at = $user->table("nation")->select();   //切换表名为nation的表进行操作。
    

     

    选择操作的字段:

    $at = $user->field("uid,name,pwd")->select();     //只显示uid,name,pwd字段
    var_dump($at);
    

      

    排序:

    $at = $user->order("code desc")->select();    //根据code降序排列
    var_dump($at);
    

      

    分页:

    $at = $user->limit("4,2")->select();     //跳过四条数据,显示接下来的两天数据。
    $at = $user->page("3,2")->select();   //每页两条数据,显示第3页。
    

      

    分组:

    //根据classcode分组,查询每组code最大的数据。
    $at = $user->field("max(code)")->group("classcode")->select();
    var_dump($at);

    //根据classcode分组,查询每组code最大且大于2017000000的数据。
    $at = $user->field("max(code)")>group("classcode")>having("max(code)>2017000000")->select(); 
    var_dump($at);

      

    连接查询:

    $at = $user->field("user.code as '代号', user.name as '姓名',nation.name as '班级'")->join("nation on user.code=nation.code")->select();
    

    注意:

    user.code as '代号', user.name as '姓名',nation.name as '班级' 是一定要写的,不然会出现查询字段显示不匹配。

    去重:
    $at = $user->distinct(true)->field("pwd")->select();
    var_dump($at);
    

     

     

     



     

  • 相关阅读:
    springboot与docker
    Docker入门笔记(Centos7)
    记录VUE-CLI项目创建及初始化相关
    centos下安装mysql5.6
    GitLab权限介绍
    属性文件操作之Properties与ResourceBundle
    Shell入门基础
    JavaScript基础的记录
    Java基本排序算法
    解读闭包,这次从ECMAScript词法环境,执行上下文说起
  • 原文地址:https://www.cnblogs.com/cyrfr/p/6532928.html
Copyright © 2011-2022 走看看