thinkphp快捷查询getBy、getField、getFieldBy用法及场景

getBy方法:
假设数据库中user表有如下字段:id,name,logo

//在user表中找到id为1的一列。返回的是一个索引数组。如果符合条件的是多行数据,默认只取第一行;

$data = M('user')->getByid(1);
$data = M('user')->getByName('小明');
$data = M('user')->getByLogo('a.jpg');
#这两个同理第一个查询
$data = M('user')->find(1);//和$data = M('user')->getByid(1);
#找到的结果是一样的,但是要求id是主键

getField方法:
找到表中name字段等于小明的的user_id的值,返回的直接是id的值。如果条件找到多个的话默认取第一个

$result = M('users')->where(['name'=>'小明'])->getField('id');

getField方法通常是伴随where条件使用的,如果没有where条件。默认返回查询结果的第一条
如果需要返回多条符合条件的值在getField方法中的参数后面加个true参数。getField(‘id’,true);
返回的数据是一维的索引数组。

$result = M('users')->where(['name'=>'小明'])->getField('id'true);

如果需要获取多个字段的话使用getField(‘id,name,logo’);同理要获取多条符合条件的值,请设置第二个参数,返回的一维数组中key值是getField方法中第一个参数的值。

$result = M('users')->where(['name'=>'小明'])->getField('id'true);
#此时的$result返回的是一个数组,key值是id值,value值是name的值;
$result = M('users')->where(['name'=>'小明'])->getField('id'true);
#此时$result是一个二维数组,类似select方法返回的数据,这个二维数组的key值是getfield方法中第一个参数的值,注意如果getField里面需要查询的字段不只一个,查询结果只能返回一条

getField方法还可以定义取多少条数据。getField(‘id’,10):表示取10条。还可以配合order等条件

getFieldBy方法:

$data = M('user')->getFieldByName('小明','id');//根据user表中的name字段找到name的值为小明的一列,并返回他的id值。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值