thinkphp遵循慣例重于配置的原則,系統(tǒng)會(huì)按照下面的順序來加載配置文件(配置的優(yōu)先順序從右到左)。
慣例配置->應(yīng)用配置->模塊配置->動(dòng)態(tài)配置
慣例配置:核心框架內(nèi)置的配置文件,無需更改。
應(yīng)用配置:每個(gè)應(yīng)用的全局配置文件(框架安裝后會(huì)生成初始的應(yīng)用配置文件),有部分配置參數(shù)僅能在應(yīng)用配置文件中設(shè)置。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
模塊配置:每個(gè)模塊的配置文件(相同的配置參數(shù)會(huì)覆蓋應(yīng)用配置),有部分配置參數(shù)模塊配置是無效的,因?yàn)橐呀?jīng)使用過。
動(dòng)態(tài)配置:主要是指在控制器或者行為中進(jìn)行(動(dòng)態(tài))更改配置,該配置方式只在當(dāng)次請(qǐng)求有效,因?yàn)椴粫?huì)保存到配置文件中。
TP5.1的數(shù)據(jù)庫配置文件在applicationconfigdatabase.php中
當(dāng)然,在application模塊名configdatabase.php(模塊配置)中的配置,優(yōu)先級(jí)會(huì)比在applicationconfigdatabase.php(應(yīng)用配置)中高
比如同時(shí)在模塊配置和在應(yīng)用配置中配置數(shù)據(jù)庫連接,那么會(huì)優(yōu)先使用模塊配置,如果模塊配置中沒有,那么會(huì)去找應(yīng)用配置中的配置信息。動(dòng)態(tài)配置的優(yōu)先級(jí)最高。
我們只需要在控制器和數(shù)據(jù)庫配置文件中操作即可,無需用到模型
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> //?+---------------------------------------------------------------------- ? return?[ ????//?數(shù)據(jù)庫類型 ????'type'????????????=>?'mysql', ????//?服務(wù)器地址 ????'hostname'????????=>?'127.0.0.1', ????//?數(shù)據(jù)庫名 ????'database'????????=>?'', ????//?用戶名 ????'username'????????=>?'root', ????//?密碼 ????'password'????????=>?'', ????//?端口 ????'hostport'????????=>?'', ????//?連接dsn ????'dsn'?????????????=>?'', ????//?數(shù)據(jù)庫連接參數(shù) ????'params'??????????=>?[], ????//?數(shù)據(jù)庫編碼默認(rèn)采用utf8 ????'charset'?????????=>?'utf8', ????//?數(shù)據(jù)庫表前綴 ????'prefix'??????????=>?'', ????//?數(shù)據(jù)庫調(diào)試模式 ????'debug'???????????=>?true, ????//?數(shù)據(jù)庫部署方式:0?集中式(單一服務(wù)器),1?分布式(主從服務(wù)器) ????'deploy'??????????=>?0, ????//?數(shù)據(jù)庫讀寫是否分離?主從式有效 ????'rw_separate'?????=>?false, ????//?讀寫分離后?主服務(wù)器數(shù)量 ????'master_num'??????=>?1, ????//?指定從服務(wù)器序號(hào) ????'slave_no'????????=>?'', ????//?自動(dòng)讀取主庫數(shù)據(jù) ????'read_master'?????=>?false, ????//?是否嚴(yán)格檢查字段是否存在 ????'fields_strict'???=>?true, ????//?數(shù)據(jù)集返回類型 ????'resultset_type'??=>?'array', ????//?自動(dòng)寫入時(shí)間戳字段 ????'auto_timestamp'??=>?false, ????//?時(shí)間字段取出后的默認(rèn)時(shí)間格式 ????'datetime_format'?=>?'Y-m-d?H:i:s', ????//?是否需要進(jìn)行SQL性能分析 ????'sql_explain'?????=>?false, ????//?Builder類 ????'builder'?????????=>?'', ????//?Query類 ????'query'???????????=>?'thinkdbQuery', ????//?是否需要斷線重連 ????'break_reconnect'?=>?false, ????//?斷線標(biāo)識(shí)字符串 ????'break_match_str'?=>?[], ????'db_config1'??????=>?[ ????????//?數(shù)據(jù)庫類型 ????????'type'????????????=>?'sqlsrv', ????????//?服務(wù)器地址 ????????'hostname'????????=>?'192.168.1.1', ????????//?用戶名 ????????'username'????????=>?'username', ????????//?密碼 ????????'password'????????=>?'passwd', ????????//?數(shù)據(jù)庫名稱 ????????'database'????????=>?'dbname', ????], ????'db_config2'??????=>?[ ????????//?數(shù)據(jù)庫類型 ????????'type'????????????=>?'mysql', ????????//?服務(wù)器地址 ????????'hostname'????????=>?'192.168.1.2', ????????//?用戶名 ????????'username'????????=>?'username', ????????//?密碼 ????????'password'????????=>?'passwd', ????????//?數(shù)據(jù)庫名稱 ????????'database'????????=>?'dbname', ????] ];
db_config1和db_config2可以看作是兩個(gè)不同的數(shù)據(jù)庫連接
我們?cè)诳刂破髦芯涂梢赃@樣調(diào)用不同的數(shù)據(jù)庫
<?php use thinkDb; $verify1 = Db::connect('db_config1')->table('tablename')->where([ ???['username','=',$username], ???['password','=',$password], ])->find(); ? $verify2?=?Db::connect('db_config2')->table('tablename')->where([ ???['username','=',$username], ???['password','=',$password], ])->find();
推薦教程:《TP5》