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

     

     

     



     

  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/cyrfr/p/6532928.html
Copyright © 2011-2022 走看看