zoukankan      html  css  js  c++  java
  • thinkphp获取特定字段的两种方法

    thinkphp getField( )和field( )

    2014年10月05日 ⁄ 综合 ⁄ 共 1509字 ⁄ 字号    ⁄ 评论关闭

            做数据库查询的时候,比较经常用到这两个,总是查手册,记不住,现在把它总结下,希望以后用的时候不查手册了。

            不管是用select 查询数据集,还是用find 查询数据,常配合连贯操作where、field、order等一起使用。

            field():用于定义要查询的字段(支持字段排除)

            用法:field($field , $except=false)  

            参数:$field —— 字段名,要查询的字段名; 

                        $except —— 是否排除,默认为false,省略不写;如果为true,表示定义的字段为数据表中排除$field参数定义之外的所有字段

            返回值:当前的模型实例

            注:不调用field方法,默认返回所有字段,和field( '*' )等效。

            需要显式的传入所有的字段,可以使用下面的方法:

            $model -> field(true) ->select() ;

            但是建议只获取需要显式的字段名,或者采用字段排除方式来定义,例如:

            $model ->field( 'status' , true) ->select();    //获取除了status之外的所有字段

            $model ->field( 'id','nickname')->select();  //获取id和nickname字段

            getField():用于查询某个字段的值

            用法:getField($field, $sepa=null)

            参数:$field —— 要获取的字段字符串(多个用逗号分隔)

                        $sepa —— 字段数据间隔符号,如果是 NULL返回数组为数组。默认为null

            返回值:如果查询结果为空返回null,如果field是一个字段则返回该字段的值,如果field是多个字段,返回数组。数组的索引是第一个字段的值,sepa为null则返回二维数组。

            示例:当只有一个字段的时候,默认返回一个值。

    $User = M("User"); // 实例化User对象
    // 获取ID为3的用户的昵称 
    $nickname = $User->where('id=3')->getField('nickname');

            示例:如果需要返回数组:

    $this->getField('id',true); // 获取id数组
    

            示例:如果传入多个字段的话,默认返回一个关联数组,

                        返回的list是一个数组,键名是用户的id, 键值是用户的昵称nickname。

    $User = M("User"); // 实例化User对象
    // 获取所有用户的ID和昵称列表 
    $list = $User->getField('id,nickname');

             示例:如果传入多个字段的名称,例如:

    $list = $User->getField('id,nickname,email');
    

            它返回的是一个二维数组,类似select方法的返回结果,区别的是这个二维数组的键名是用户的id(准确的说是:getField方法的第一个字段名)。

            示例:如果我们传入一个字符串分隔符:

    $list = $User->getField('id,nickname,email',':');
    

    那么返回的结果就是一个数组,键名是用户id,键值是 nickname:email的输出字符串。

            另外:sepa参数还可以支持限制数量,可以配合使用order方法使用。例如:

    $this->getField('id,name',5); // 限制返回5条记录
    $this->getField('id',3); // 获取id数组 限制3条记录
  • 相关阅读:
    typescript提示implicitly has an 'any' type 问题
    element-ui中的table可分页多选功能-记住上一页勾选数据
    CSS加载会阻塞页面显示?
    网络流(EK算法)
    网络流(dinic算法)
    洛谷p1120小木棍(剪枝优化)
    三种背包模板
    HDU2089-不要62(数位dp)
    windy数(数位dp)
    素数判定(待填坑)
  • 原文地址:https://www.cnblogs.com/Shjergsen/p/5076591.html
Copyright © 2011-2022 走看看