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():⽤于查询某个字段的值
php实例手册⽤法: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条记录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论