6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式

戳缎貉钢魂耗孙褐回冲拐经官

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第1张

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第2张

数据库文件下载

数据库tp5中的表staff结构:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第3张

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第4张

注意:在创建表字段时,double类型不要设置长度!!!

数据库的静态配置

1.复制创建database.php,复制:D:\phpStudy\PHPTutorial\WWW\tp5\application\database.php

中的代码到database.php中即可

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第5张

<?php
return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'tp5',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => 'root',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        //1.获取数据库的连接实例
        $link=Db::connect();
        //2.使用连接实例调用查询类的查询方法
        $result=$link->table('staff')->select();
        //输出查询结果
        dump($result);

    }
}

执行:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第6张


动态配置,将数据库配置文件改名,使静态配置失效

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第7张

执行:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第8张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        $config=[
            // 数据库类型
            'type'=> 'mysql',
            // 服务器地址
            'hostname'=> '127.0.0.1',
            // 数据库名
            'database'=> 'tp5',
            // 用户名
            'username'=> 'root',
            // 密码
            'password'=> 'root',
        ];
        //1.获取数据库的连接实例
        $link=Db::connect($config);
        //2.使用连接实例调用查询类的查询方法
        $result=$link->table('staff')->select();
        //输出查询结果
        dump($result);

    }
}

执行:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第9张


6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第10张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        $config="mysql://root:root@127.0.0.1:3306/tp5#utf8";
        //1.获取数据库的连接实例
        $link=Db::connect($config);
        //2.使用连接实例调用查询类的查询方法
        $result=$link->table('staff')->select();
        //输出查询结果
        dump($result);

    }
}

执行:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第11张


实际开发中,连接器是自动调用的

实际开发请使用下面这种方法

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第12张

<?php
return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'tp5',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => 'root',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        $result=Db::table('staff')->select();
        dump($result);
    }
}

执行:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第13张


因为代码简单,还可以继续简化

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use think\Db;
class Index
{
    public function index()
    {
        return "萌面人资料铺";
    }
    public function demo()
    {
        dump(Db::table('staff')->select());
    }
}

执行:

6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第13张


6-2ThinkPHP5如何正确的创建数据库连接:静态与动态方式第15张


裁儒释铣挤跺惫奋漂粒接钝磋