value php,value方法 - ThinkPHP5数据库实例详解 - php中文网手册

value 方法这个方法比较简单,这里快速带大家过一遍,重点讲手册没有提及的参数默认值

1、功能: 获取单条记录某个字段的值

2、源码:/thinkphp/library/think/db/Query.php

25e6ef0d092a5123125cf51c5f059a71.png

4、参数和返回值该方法允许传入二个参数:序号参数说明1字段名当前记录中存在的字段名称

2默认值当查询失败时,返回该值返回值:mixed(任意类型),由字段值类型决定。

如字段值是数字,则返回数值型,字符串则返回字符类型,以此类推;

无返回值时,则返回事先设定的默认值,后面有详细的实例演示。

5、适用环境:针对单条记录有意义 ,多条记录也只返回第一个记录对应的字段值

6、实例演示:当前表tp5_staff 中数据如下:

ac5cd68134229ae102baeb4023af31e3.png

1. 查询id = 1007 的记录中的name值Index.php 源代码:<?php

namespace app\index\controller;

use think\Db;

class Index {

public function demo1(){

//查询单条记录中某个字段的值,如果失败,可设置输出默认值

$result = Db::table('tp5_staff')     //设置数据表tp5_staff

->where('id=1007')         //设置查询条件id=1007

->value('name','查无此人');  //查询字段值,如无则输出:查无此人

//输出查询结果

dump($result);

}

}查询结果:string(9) "潘金莲"     //字符串类型,对应的值是:潘金莲,对照表可知查询成功对应的SQL语句:SELECT `name` FROM `tp5_staff` WHERE ( id=1007 ) LIMIT 1

2. 查询id = 1107 的记录中的name值注意:当前表中并无id=1107的记录,我们看一下无返回值时,如何处理?我们根据条件修改一下Index.php 源代码:<?php

namespace app\index\controller;

use think\Db;

class Index {

public function demo1(){

//查询单条记录中某个字段的值,如果失败,可设置输出默认值

$result = Db::table('tp5_staff')     //设置数据表tp5_staff

->where('id=1107')         //设置查询条件id=1107

->value('name','查无此人');  //查询字段值,如无则输出:查无此人

//输出查询结果

dump($result);

}

}查询结果:string(12) "查无此人"

//当前表中,并无id=1107的记录返回值,因此结果为假,这时输出我们事先设定的默认值,给客户一个人性友好的提示信息对应的SQL语句:SELECT `name` FROM `tp5_staff` WHERE ( id=1107 ) LIMIT 1

3. 查询id > 1007 的所有记录中的name值当给定条件是一个区间范围时,常理推断应该返回一个数组,是不是这样呢?看实例:修改Index.php 源代码中where条件:<?php

namespace app\index\controller;

use think\Db;

class Index {

public function demo1(){

//查询单条记录中某个字段的值,如果失败,可设置输出默认值

$result = Db::table('tp5_staff')     //设置数据表tp5_staff

->where('id > 1007')         //设置查询条件id 大于 1007

->value('name','查无此人');  //查询字段值,如无则输出:查无此人

//输出查询结果

dump($result);

}

}分析:查看tp5_staff表,因为id为正整数,所以 id 大于 1007 的第一条记录是 id =1008 ,而 id=1008 记录对应的name值是:宋江运行结果:string(6) "宋江"  //输出id = 1008 记录对应 name字段值相应的SQL语句:SELECT `name` FROM `tp5_staff` WHERE ( id > 1007 ) LIMIT 1结论:

1.value方法只能返回单记录查询结果中的指定的字段值;

2.当返回多个满足条件的记录时,也只获取第一条满足条件的记录对应字段值。如果想获取全部满足条件的字段值,就要用下面的:column方法啦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值