TP3.2中filed和find()使用

1、总结:filed和find(),进行一维数组查询指定字段时,可以进行配合使用,获得结果:key:value; 但官方没有明确指出。

2、filed和getFiled最终的结果是不一样的,一个获得的是数组(find一维、select二维;),getFiled根据字段数量获得结果类型不一样,具体如下:

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

默认情况下,当只有一个字段的时候,返回满足条件的数据表中的该字段的第一行的值(字符串);需要注意:如果有多个结果,建议使用下面

如果需要返回整个列的数据,可以用:

  1. $User->getField('id',true); // 获取id数组
  2. //返回数据格式如array(1,2,3,4,5)一维数组,其中value就是id列的每行的值

 

两个字段:返回结果如下:

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

array(`id1`=>`nickname1`,'id2'=>'nickname2')的【一维】关联数组,以id的值为key,nickname字段值为value

 

三个字段或以上:

  1. $list = $User->getField('id,nickname,email');
  2. //返回的数组格式是array(`id`=>array(`id`=>value,`nickname`=>value,`email`=>value))是一个二维数组,key还是id字段的值,但value是整行的array数组,类似于select()方法的结果遍历将id的值设为数组key

 3、find()和order()组合使用,达到limit(1)的效果,结果得到一维数组

$vil_room = M('home_service','xxf_witkey_')->where('service_status=2 and v_id='.$vil_id)->field('s_id,v_id')->order('s_id desc')->find();  //一维数组,只有一条数据,效果等于limit(1)+select()

posted @ 2017-06-19 16:54  PHP急先锋  阅读(8411)  评论(0编辑  收藏  举报