ThinkPHP5数据库实例详解

浏览21089
更新时间2022-01-20

value 方法

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

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

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

4、参数和返回值

  • 该方法允许传入二个参数:
序号 参数 说明
1 字段名 当前记录中存在的字段名称
2 默认值 当查询失败时,返回该值
  • 返回值:mixed(任意类型),由字段值类型决定。
    • 如字段值是数字,则返回数值型,字符串则返回字符类型,以此类推;
    • 无返回值时,则返回事先设定的默认值,后面有详细的实例演示。

5、适用环境:

针对单条记录有意义 ,多条记录也只返回第一个记录对应的字段值

6、实例演示:

当前表tp5_staff 中数据如下:

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.当返回多个满足条件的记录时,也只获取第一条满足条件的记录对应字段值。

  1. 如果想获取全部满足条件的字段值,就要用下面的:column方法啦

相关视频

更多

免费

php8,我来也
初级php8,我来也

34万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.6万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

31万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

65万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.7万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.4万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.2万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.2万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载