在做数据库查询的时候,经常用到
field、getfield,
今天就做一下总结。希望以后能记住。。
field()用于定义要查询的字段(支持字段排除)
用法 : field ($field ,$except = false)
参数 : $field --- 字段名,要查询的字段名;
$except --- 是否排除,默认是false,一般省略不写;如果是true,表示定义的字段为数据表中排除$filed参数定义之外的所有字段
注 :不调用field方法,默认返回所有的字段,和field(*) 等效。
例如:
$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则返回二维数组。
示例:当只有一个字段的时候,默认返回一个值。
//获取id为3的用户昵称
$nickname = $model->where('id=3')->getField('nickname')
;
示例:如果需要返回整个列的数据
$model -> getField('id',true); //获取id数组
//返回数据格式如array(1,2,3,4,5)一维数组,其中value就是id列的每行的值
示例 : 如果传入多个字段的话,默认返回一个关联数组
$model -> getField ('id,nickname');
//两个字段的情况下返回的是array(`id`=>`nickname`)的关联数组,以id的值为key,nickname字段值为value
$model -> getField('id,nickname,age');
//返回的数组格式是array(`id` => array(`id`=> value , `nickname` => value , `email` => value) )是一个二维数组,类似于将select()方法的结果遍历将id的值设为数组key
//如果传入一个字符串分隔符
$model -> getField('id,nickname,age',':');
//返回的结果就是一个数组,键名是用户id,键值是nickname : age的输出字符串
//getField方法还可以支持限制数量
$model -> getField('id , nickname',5);
// 返回数组格式 array(`id` => `nickname`)
$model -> getField('id',5);
//返回数组格式array(1,2,3,4,5);