ThinkPHP5数据库实例详解

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

db助手函数的使用

1、功能:选择当前操作的数据表实例(与name方法类似)

2、源码位置:/thinkphp/Helper.php

注意:这是函数,不是方法,没有定义在某个类文件中

if (!function_exists('db')) {
    /**
     * 实例化数据库类
     * @param string        $name 操作的数据表名称(不含前缀)
     * @param array|string  $config 数据库配置参数
     * @param bool          $force 是否强制重新连接
     * @return \think\db\Query
     */
    function db($name = '', $config = [], $force = true)
    {
        return Db::connect($config, $force)->name($name);
    }
}
  • 源码分析:db助手函数内部仍是通过 name方法来实现的;

3、参数与返回值:

  • 阅读源码发现:
    • 参数是不含前缀的表名、连接配置参数及其它;
    • 因为数据库连接配置,通常事先配置好,所以只传表名即可;
    • 返回的是查询类Query的对象自身,便于后面链式调用。

4、适用环境:

  • 如果事先没有配置数据库连接信息,必须传入第二个参数;
  • 第三个参数:是否强制重新连接也必须传值:true;

5、调用语法(以:tp5_staff表为例):

  • 助手函数helper.php,框架启动自动加载,所以可以直接直接使用助手函数db
  • db助手函数:db('staff');

6、实例演示:

  • tp5_staff表中数据如下:

实例:(省略前缀的表名)选择tp5_staff表,查询id等于1003的数据:

  • Index.php 控制器源文件:
<?php
namespace app\index\controller;

class Index  {
    public function index(){ 

    //使用db助手函数选择表,并输出查询结果
    dump(db('staff')->find('1003'));
 } 

}
  • 运行结果:
array(7) {
  ["id"] => int(1003)
  ["name"] => string(6) "杨过"
  ["sex"] => int(0)
  ["age"] => int(35)
  ["salary"] => float(5303)
  ["dept"] => string(9) "市场部"
  ["hiredate"] => string(10) "2014-09-22"
}

7、局限性或注意事项:

  • db()助手函数选择数据表,与name方法完全一样,可替代name方法;
  • 不可以跨库操作,即不可指定数据库前缀;
  • 不可以设置表别名(因为当前表名不简称);
  • 隐藏了太多的操作细节,不利于了解框架的运行流程,容易让初学者产生误解。
以下是官方手册的的描述:

注意:使用db助手函数默认每次都会重新连接数据库,而使用 Db::name 或者 Db::table 方法的话都 是单例的。db函数如果需要采用相同的链接,可以传入第三个参数,例如:
db('user',[],false)->where('id',1)->find();
db('user',[],false)->where('status',1)->select();
上面的方式会使用同一个数据库连接,第二个参数为数据库的连接参数,留空表示采用数据库配置文件的 配置。

小作业:

  • db()助手函数选择表操作,是最简洁的,连类引入都省略了,动手试一下吧~~

相关视频

更多

免费

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 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载