1在config/database.php中配置
1.1直接
return [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'hainan', // 用戶名 'username' => 'root', // 密碼 'password' => 'root', // 端口 'hostport' => '', // 連接dsn 'dsn' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'dl_', // 數據庫調試模式 'debug' => true, // 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 'deploy' => 0, // 數據庫讀寫是否分離 主從式有效 'rw_separate' => false, // 讀寫分離后 主服務器數量 'master_num' => 1, // 指定從服務器序號 'slave_no' => '', // 自動讀取主庫數據 'read_master' => false, // 是否嚴格檢查字段是否存在 'fields_strict' => true, // 數據集返回類型 'resultset_type' => 'array', // 自動寫入時間戳字段 'auto_timestamp' => false, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要進行SQL性能分析 'sql_explain' => false, ];
1.2Env配置
use think\Env; return [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => Env::get('database.hostname','127.0.0.1'), // 數據庫名 'database' => Env::get('database.database','cp'), // 用戶名 'username' => Env::get('database.username','root'), // 密碼 'password' => Env::get('database.password','root'), // 端口 'hostport' => Env::get('database.hostport','3306'), // 連接dsn 'dsn' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => Env::get('database.charset','utf8'), // 數據庫表前綴 'prefix' => Env::get('database.prefix','dl_'), // 數據庫調試模式 '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, ];
.env文件中
app_debug = true app_trace = false //cache = redis [database] hostname = 127.0.0.1 database = hainan username = root password = root hostport = 3306 charset = utf8 prefix = dl_
2在模型中定義$connection屬性設置當前模型對應數據庫的鏈接
class AdminNav extends Base{ //5.0不支持單獨設置當前模型的數據表前綴。 database.php文件里設置'prefix'=>'dl_', //默認主鍵為自動識別,如果需要指定,可以設置屬性 //protected $pk = 'id'; //模型會自動對應數據表,模型類的命名規則是除去表前綴的數據表名稱,采用駝峰法命名,並且首字母大寫 //AdminNav 自動對應到 表前綴(dl)_admin_nav 如不是這張表則用$table申明該模型類數據表 protected $table = 'dl_right'; // 設置當前模型的數據庫連接 protected $connection = [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'admindemo', // 數據庫用戶名 'username' => 'root', // 數據庫密碼 'password' => 'root', // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'dl_', // 數據庫調試模式 'debug' => false, ]; }
3、控制器中直接申明
namespace app\index\controller; use think\Db; class Index extends Controller { public function demo(Request $res) { Db::connect([ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '127.0.0.1', // 數據庫名 'database' => 'hainan', // 用戶名 'username' => 'root', // 密碼 'password' => 'root', // 端口 'hostport' => '', // 連接dsn 'dsn' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'dl_', // 數據庫調試模式 'debug' => true, // 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 'deploy' => 0, // 數據庫讀寫是否分離 主從式有效 'rw_separate' => false, // 讀寫分離后 主服務器數量 'master_num' => 1, // 指定從服務器序號 'slave_no' => '', // 自動讀取主庫數據 'read_master' => false, // 是否嚴格檢查字段是否存在 'fields_strict' => true, // 數據集返回類型 'resultset_type' => 'array', // 自動寫入時間戳字段 'auto_timestamp' => false, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要進行SQL性能分析 'sql_explain' => false, ]); //或者使用字符串 Db::connect('mysql://root:root@127.0.0.1:3306/dl_#utf8'); } }