ThinkPHP连接数据库

ThinkPHP封装了一个ORM框架,对数据库进行操作,只要配置好数据库信息,就可以对数据库进行操作。

在读取配置文件时,系统会默认有限读取.env的内容。在项目的根目录中,若不存在的话,可以将.example.env文件重命名为.env。修改下面对应属性

HOSTNAME 数据库的IP

DATABASE 所要操作的数据库名字

USERNAME 链接数据库的用户名

PASSWORD 密码

HOSTPORT 端口号

CHARSET 编码

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = username
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn

在根目录的config下的database.php也可以设置数据库的链接信息。很多系统都给了默认值,可以根据自己需要去修改。(注意:.env文件的优先级高于database.php这个文件

    // 数据库连接配置信息
    'connections'     => [
        'mysql' => [
            // 数据库类型
            'type'            => env('database.type', 'mysql'),
            // 服务器地址
            'hostname'        => env('database.hostname', '127.0.0.1'),
            // 数据库名
            'database'        => env('database.database', ''),
            // 用户名
            'username'        => env('database.username', 'root'),
            // 密码
            'password'        => env('database.password', ''),
            // 端口
            'hostport'        => env('database.hostport', '3306'),
            // 数据库连接参数
            'params'          => [],
            // 数据库编码默认采用utf8
            'charset'         => env('database.charset', 'utf8'),
            // 数据库表前缀
            'prefix'          => env('database.prefix', ''),

            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
            'deploy'          => 0,
            // 数据库读写是否分离 主从式有效
            'rw_separate'     => false,
            // 读写分离后 主服务器数量
            'master_num'      => 1,
            // 指定从服务器序号
            'slave_no'        => '',
            // 是否严格检查字段是否存在
            'fields_strict'   => true,
            // 是否需要断线重连
            'break_reconnect' => false,
            // 监听SQL
            'trigger_sql'     => env('app_debug', true),
            // 开启字段缓存
            'fields_cache'    => false,
        ],
    ],

代码测试

创建一个用于测试数据库链接的控制器 DataBaseTest.php

<?php

namespace app\controller;


use think\facade\Db;

class DataBaseTest
{
    
    
    public function index()
    {
    
    
        // 取出表明为tp_user中的所有数据
        $user = Db::table('tp_user')->select();
        return json($user);
    }
}

然后访问这个控制器,只要能正确输出,那么数据库配置就算成功了。

猜你喜欢

转载自blog.csdn.net/qq_43058685/article/details/112494518