zoukankan      html  css  js  c++  java
  • ThinkPHP5中find()和select()区别

    ThinkPHP5中find()和select()区别

    读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,例如:

    1
    2
    3
    4
    $User = M("User"); // 实例化User对象
    // 查找status值为1name值为think的用户数据 
    $data $User->where('status=1 AND name="thinkphp"')->find();
    dump($data);

    find方法查询数据的时候可以配合相关的连贯操作方法,其中最关键的则是where方法,如何使用where方法我们会在查询语言章节中详细描述。

    如果查询出错,find方法返回false,如果查询结果为空返回NULL,查询成功则返回一个关联数组(键值是字段名或者别名)。 如果上面的查询成功的话,会输出:

    1
    2
    3
    4
    array (size=3)
      'name' => string 'thinkphp' (length=8)
      'email' => string 'thinkphp@gmail.com' (length=18)
      'status'=> int 1

    即使满足条件的数据不止一个,find方法也只会返回第一条记录(可以通过order方法排序后查询)。

    还可以用data方法获取查询后的数据对象(查询成功后)

    1
    2
    3
    4
    $User = M("User"); // 实例化User对象
    // 查找status值为1name值为think的用户数据 
    $User->where('status=1 AND name="thinkphp"')->find();
    dump($User->data());

    读取数据集

    读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用select方法,使用示例:

    1
    2
    3
    $User = M("User"); // 实例化User对象
    // 查找status值为1的用户数据 以创建时间排序 返回10条数据
    $list $User->where('status=1')->order('create_time')->limit(10)->select();

    如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。

     
     
    $about=M('document');
    $abouts=$about->where('id=2')->select();
    $abouts2=$about->where('id=2')->find();
    var_dump($abouts);
    var_dump($abouts2);

    输出结果:

    array (size=1)
      0 => 
        array (size=24)
          'id' => string '2' (length=1)
          'uid' => string '1' (length=1)
          'name' => string '' (length=0)
          'title' => string '公司简介' (length=12)
          'category_id' => string '39' (length=2)
          'group_id' => string '0' (length=1)
          'description' => string '公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介' (length=156)
          'root' => string '0' (length=1)
          'pid' => string '0' (length=1)
    array (size=24)
      'id' => string '2' (length=1)
      'uid' => string '1' (length=1)
      'name' => string '' (length=0)
      'title' => string '公司简介' (length=12)
      'category_id' => string '39' (length=2)
      'group_id' => string '0' (length=1)
      'description' => string '公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介' (length=156)
      'root' => string '0' (length=1)
      'pid' => string '0' (length=1)

    从上面的代码可以看出,find()返回一个一维数组select()返回一个二维数组,所以在取值时有所不同,一维数组取值用$data["id"],二维数组取值用$data[0]["id"],由于一开始没了解这个用法,调试一天也取不值,最后有var_dump()方法才看到两个方法的不同所在!

            $about=M('document');
            $abouts=$about->where('id=2')->select();
            $abouts2=$about->where('id=2')->find();
    //        var_dump($abouts);
    //        var_dump($abouts2);
             if($abouts){
                $article = M('document_article');
                //$info = $article->find($abouts['id']);
                $info=$article->where('id='.$abouts2['id'])->find();
            }
            $this->assign('wzjj',$info);
  • 相关阅读:
    [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View
    [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
    [独孤九剑]Oracle知识点梳理(三)导入、导出
    [独孤九剑]Oracle知识点梳理(二)数据库的连接
    [独孤九剑]Oracle知识点梳理(一)表空间、用户
    [独孤九剑]Oracle知识点梳理(零)目录
    jmeter安装
    MongoDB 用Robomong可视化工具操作的 一些简单语句
    限制输入字数JS
    我们来谈谈最近最热门的微信小程序
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8762656.html
Copyright © 2011-2022 走看看