thinkphp6多資料庫配置記錄

jsonMark發表於2021-02-22

其他部落格:

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 協議》,轉載必須註明作者和本文連結

相關文章