thinkphp6多数据库配置记录

其他博客:

Thinkphp6笔记十二:多数据库配置

www.manongjc.com/detail/15-puxjgeek...

  1. config\database.php代码

    return [
     'default'         => env('database.driver', 'mysql'),
    
     // 自动写入时间戳字段
     // true为自动识别类型 false关闭
     // 字符串则明确指定时间字段类型 支持 int timestamp datetime date
     'auto_timestamp'  => 'timestamp',
    
     // 时间字段取出后的默认时间格式
     'datetime_format' => 'Y-m-d Hs',
    
     // 数据库连接配置信息
     '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,
             // 字段缓存路径
             'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
         ],
    
         'crm_mysql' => [
             // 数据库类型
             'type'              => env('crm_database.type', 'mysql'),
             // 服务器地址
             'hostname'          => env('crm_database.hostname', '127.0.0.1'),
             // 数据库名
             'database'          => env('crm_database.database', ''),
             // 用户名
             'username'          => env('crm_database.username', 'root'),
             // 密码
             'password'          => env('crm_database.password', ''),
             // 端口
             'hostport'          => env('crm_database.hostport', '3306'),
             // 数据库连接参数
             'params'            => [],
             // 数据库编码默认采用utf8
             'charset'           => env('crm_database.charset', 'utf8'),
             // 数据库表前缀
             'prefix'            => env('crm_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,
             // 字段缓存路径
             'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
         ],
         // 更多的数据库配置信息
     ],
  2. app\api\model\CrmBaseModel.php

    <?php
    namespace  app\api\model;
    use think\Model;
    /*CRM数据库基类连接信息*/
    class CrmBaseModel extends Model{
     // 设置当前模型的数据库连接
     protected $connection = 'crm_mysql';
    }
  3. app\api\model\CrmTestModel.php

    <?php
    namespace app\api\v1\controller;
    use app\api\model\CrmTestModel;
    use think\facade\Db;
    class DemoController
    {
      public function index()
      {
          var_dump("连接信息测试:");
          $result = Db::connect('crm_mysql');
          print("<pre>");
          var_dump("Controller直接输出连接信息:");
          var_dump($result);
          print("<pre>");
          $info = CrmTestModel::select()->toArray();
          print("<pre>");
          var_dump("Model输出连接信息:");
          var_dump($info);
          print("<pre>");
      }
    }
  4. 配置文件.env

    [DATABASE]
    TYPE = mysql
    HOSTNAME = 127.0.0.1
    DATABASE = educ
    USERNAME = educ
    PASSWORD = aHwk
    #CRM_DATABASE连接
    [CRM_DATABASE]
    TYPE = mysql
    HOSTNAME = 127.0.0.1
    DATABASE = hfdgfdsg
    USERNAME = dfgfdgsg
    PASSWORD = Tsdgfdsgfdss
    HOSTPORT = 3306
    CHARSET = utf8
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!