新聞中心
thinkphp 數(shù)據(jù)庫(kù)配置文件詳解

10年的龍湖網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整龍湖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“龍湖網(wǎng)站設(shè)計(jì)”,“龍湖網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
ThinkPHP 是一款優(yōu)秀的 PHP 框架,它的數(shù)據(jù)庫(kù)配置文件是開(kāi)發(fā)者經(jīng)常需要進(jìn)行修改的地方。在這篇文章中,我們將深入了解 ThinkPHP 的數(shù)據(jù)庫(kù)配置文件,讓您對(duì)其有更加深入的了解。
1. 數(shù)據(jù)庫(kù)配置文件的位置
在 ThinkPHP 中,數(shù)據(jù)庫(kù)配置文件位于 `application/database.php` 文件中。當(dāng)您要修改數(shù)據(jù)庫(kù)的連接信息時(shí),只需要打開(kāi)這個(gè)文件進(jìn)行編輯即可。
2. 數(shù)據(jù)庫(kù)連接信息
在 `database.php` 文件中,您需要配置數(shù)據(jù)庫(kù)的連接信息,包括數(shù)據(jù)庫(kù)類(lèi)型、數(shù)據(jù)庫(kù)地址、端口、數(shù)據(jù)庫(kù)名稱(chēng)、數(shù)據(jù)庫(kù)用戶(hù)名、數(shù)據(jù)庫(kù)密碼等。
可以通過(guò)以下代碼配置數(shù)據(jù)庫(kù)連接信息:
“`php
// 數(shù)據(jù)庫(kù)類(lèi)型
‘type’ => ‘mysql’,
// 數(shù)據(jù)庫(kù)地址
‘hostname’ => ‘127.0.0.1’,
// 數(shù)據(jù)庫(kù)端口
‘hostport’ => ‘3306’,
// 數(shù)據(jù)庫(kù)名稱(chēng)
‘database’ => ‘test’,
// 數(shù)據(jù)庫(kù)用戶(hù)名
‘username’ => ‘root’,
// 數(shù)據(jù)庫(kù)密碼
‘password’ => ”,
“`
其中,`type` 字段指定了數(shù)據(jù)庫(kù)類(lèi)型。目前支持的數(shù)據(jù)庫(kù)類(lèi)型包括 MySQL、MariaDB、Oracle、SQLServer 等。
`hostname` 字段指定了數(shù)據(jù)庫(kù)服務(wù)器的地址,如果是本機(jī)則可以填寫(xiě) `127.0.0.1` 或 `localhost`;
`hostport` 字段指定了數(shù)據(jù)庫(kù)服務(wù)器的端口號(hào),默認(rèn)是 3306;
`database` 字段指定了要連接的數(shù)據(jù)庫(kù)名稱(chēng);
`username` 和 `password` 字段分別指定了連接數(shù)據(jù)庫(kù)所需要的用戶(hù)名和密碼。
除了以上基本連接信息外,還有其他可選配置項(xiàng),例如:
“`php
// 數(shù)據(jù)庫(kù)連接參數(shù)配置
‘params’ => [],
// 數(shù)據(jù)庫(kù)編碼,默認(rèn)為utf8
‘charset’ => ‘utf8’,
// 數(shù)據(jù)庫(kù)表前綴
‘prefix’ => ”,
// 是否開(kāi)啟sql日志
‘log_sql’ => false,
// 開(kāi)啟sql調(diào)試模式
‘debug’ => true,
“`
其中比較常用的是 `prefix` 字段,指定了在生成 SQL 語(yǔ)句時(shí)加上的表前綴。
3. 多數(shù)據(jù)庫(kù)支持
在實(shí)際應(yīng)用中,有時(shí)我們需要連接多個(gè)不同的數(shù)據(jù)庫(kù),并且每個(gè)數(shù)據(jù)庫(kù)都有自己的配置信息,這時(shí)就需要使用 ThinkPHP 提供的多數(shù)據(jù)庫(kù)支持功能。
在 `database.php` 文件中,可以通過(guò)以下代碼來(lái)配置多個(gè)數(shù)據(jù)庫(kù):
“`php
// 默認(rèn)數(shù)據(jù)庫(kù)配置
‘test’ => [
// 數(shù)據(jù)庫(kù)類(lèi)型
‘type’ => ‘mysql’,
// 數(shù)據(jù)庫(kù)地址
‘hostname’ => ‘127.0.0.1’,
// 數(shù)據(jù)庫(kù)端口
‘hostport’ => ‘3306’,
// 數(shù)據(jù)庫(kù)名稱(chēng)
‘database’ => ‘test’,
// 數(shù)據(jù)庫(kù)用戶(hù)名
‘username’ => ‘root’,
// 數(shù)據(jù)庫(kù)密碼
‘password’ => ”,
],
// 其他數(shù)據(jù)庫(kù)配置
‘other’ => [
// 數(shù)據(jù)庫(kù)類(lèi)型
‘type’ => ‘mysql’,
// 數(shù)據(jù)庫(kù)地址
‘hostname’ => ‘127.0.0.1’,
// 數(shù)據(jù)庫(kù)端口
‘hostport’ => ‘3306’,
// 數(shù)據(jù)庫(kù)名稱(chēng)
‘database’ => ‘other’,
// 數(shù)據(jù)庫(kù)用戶(hù)名
‘username’ => ‘root’,
// 數(shù)據(jù)庫(kù)密碼
‘password’ => ”,
],
“`
以上代碼中,`’test’` 和 `’other’` 是兩個(gè)不同的數(shù)據(jù)庫(kù)連接名稱(chēng),分別代表了 two 中定義的兩個(gè)數(shù)據(jù)庫(kù)連接。如果需要連接其中一個(gè)數(shù)據(jù)庫(kù),只需使用 `Db::connect(‘test’)` 或 `Db::connect(‘other’)` 即可。
4. 數(shù)據(jù)庫(kù)讀寫(xiě)分離
在高并發(fā)應(yīng)用場(chǎng)景下,可以考慮使用數(shù)據(jù)庫(kù)讀寫(xiě)分離的方式來(lái)優(yōu)化數(shù)據(jù)庫(kù)性能。在 ThinkPHP 中,可以通過(guò)以下代碼來(lái)進(jìn)行配置:
“`php
// 數(shù)據(jù)庫(kù)讀寫(xiě)分離配置
‘read’ => [
// 讀數(shù)據(jù)庫(kù)類(lèi)型
‘type’ => ‘mysql’,
// 讀數(shù)據(jù)庫(kù)地址
‘hostname’ => ‘127.0.0.1’,
// 讀數(shù)據(jù)庫(kù)用戶(hù)名
‘username’ => ‘root’,
// 讀數(shù)據(jù)庫(kù)密碼
‘password’ => ”,
// 讀數(shù)據(jù)庫(kù)端口號(hào)
‘hostport’ => ‘3306’,
// 讀數(shù)據(jù)庫(kù)名稱(chēng)
‘database’ => ‘test’,
// 讀數(shù)據(jù)庫(kù)表前綴
‘prefix’ => ”,
],
‘write’ => [
// 寫(xiě)數(shù)據(jù)庫(kù)類(lèi)型
‘type’ => ‘mysql’,
// 寫(xiě)數(shù)據(jù)庫(kù)地址
‘hostname’ => ‘127.0.0.1’,
// 寫(xiě)數(shù)據(jù)庫(kù)用戶(hù)名
‘username’ => ‘root’,
// 寫(xiě)數(shù)據(jù)庫(kù)密碼
‘password’ => ”,
// 寫(xiě)數(shù)據(jù)庫(kù)端口號(hào)
‘hostport’ => ‘3306’,
// 寫(xiě)數(shù)據(jù)庫(kù)名稱(chēng)
‘database’ => ‘test’,
// 寫(xiě)數(shù)據(jù)庫(kù)表前綴
‘prefix’ => ”,
],
// 數(shù)據(jù)庫(kù)讀寫(xiě)分離開(kāi)啟
‘read_write_split’ => true,
“`
以上配置中,`’read’` 字段設(shè)為讀數(shù)據(jù)庫(kù),`’write’` 字段設(shè)為寫(xiě)數(shù)據(jù)庫(kù)。當(dāng) `read_write_split` 字段為 `true` 時(shí),系統(tǒng)會(huì)自動(dòng)區(qū)分讀寫(xiě)請(qǐng)求并將其發(fā)送到對(duì)應(yīng)的數(shù)據(jù)庫(kù)上。
5.
配置數(shù)據(jù)庫(kù)連接信息是每個(gè) PHP 開(kāi)發(fā)者都需要掌握的技能。通過(guò)本文的介紹,您應(yīng)該已經(jīng)對(duì) ThinkPHP 的數(shù)據(jù)庫(kù)配置文件有更加深入的了解了,希望這能夠幫助到您更好地開(kāi)發(fā)和優(yōu)化您的應(yīng)用。
相關(guān)問(wèn)題拓展閱讀:
- php手把手教你做網(wǎng)站(二十九)thinkphp6部署多個(gè)數(shù)據(jù)庫(kù)
- thinkphp怎么連接數(shù)據(jù)庫(kù)
- thinkphp.連接數(shù)據(jù)庫(kù)
php手把手教你做網(wǎng)站(二十九)thinkphp6部署多個(gè)數(shù)據(jù)庫(kù)
前邊介紹了
負(fù)載均衡
,mysql同步,接下來(lái)介紹tp6分布式部署多個(gè)數(shù)據(jù)庫(kù),實(shí)現(xiàn)讀寫(xiě)分離。
tp6的分布式部署讀和寫(xiě)仍然是一個(gè)系統(tǒng),這里我們分開(kāi)操作,給用戶(hù)展示的就是從數(shù)據(jù)庫(kù),后端添加文章就是主庫(kù),然后同步到從庫(kù)。
1、配置數(shù)據(jù)庫(kù)鏈接參數(shù)
目標(biāo):實(shí)現(xiàn)隨機(jī)使用數(shù)據(jù)庫(kù)展示信息,只是讀操作。
測(cè)試:前臺(tái)可以讀取表中內(nèi)容(存放的不一致),查看是否是隨機(jī)顯示的。
打開(kāi).env文件進(jìn)行編輯
說(shuō)明:
2、編輯database.php
找到deploy設(shè)置為1分布式部署,下邊不要改,都是讀,寫(xiě)入的也就是后端的我們單獨(dú)建站連接主庫(kù)。
配置完成,tp6使用的是mt_rand取
隨機(jī)數(shù)
判斷使用哪個(gè)數(shù)據(jù)庫(kù)。
3、數(shù)據(jù)庫(kù)交互寫(xiě)操作
比如瀏覽量沒(méi)必差遲要每次都去更新數(shù)據(jù)庫(kù),可以先使用redis緩存,存夠1000的整數(shù)倍,再去更新數(shù)據(jù)庫(kù)。
4、后立,也就是寫(xiě)
可以前后端分離,單獨(dú)做一個(gè)網(wǎng)站(沒(méi)有前端)使用ip訪(fǎng)問(wèn)或者獨(dú)立的域名連接后臺(tái)。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負(fù)載均衡,肯定是多個(gè)一樣的網(wǎng)站,如果圖片存放到一個(gè)站,別的就不能訪(fǎng)問(wèn)了,可以單獨(dú)設(shè)置一個(gè)附件(
壓縮包
,圖片等)服務(wù)器,可以使用
二級(jí)域名
連接,這就要求我們上傳附件的時(shí)候,是上傳到附件服務(wù)器。
jqueryURL
API控制器apdpic方法
說(shuō)明:
也可以先傳到后臺(tái)服務(wù)器然后使用(php)ftp上傳,或者是通過(guò)curl上傳到附件服務(wù)器,感覺(jué)那樣畢竟麻煩,直接設(shè)置跨域會(huì)比較簡(jiǎn)單。
也測(cè)試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實(shí)現(xiàn)讀寫(xiě)分離(在一個(gè)站點(diǎn))
我個(gè)人是不喜歡這樣的,負(fù)載均衡應(yīng)該是均衡地讀,也就是前臺(tái)單獨(dú)一個(gè)悉薯站點(diǎn),后端的寫(xiě)是另一個(gè)獨(dú)立的站點(diǎn),看睜?wèi)c者個(gè)人喜好吧。
獨(dú)立后臺(tái)的優(yōu)點(diǎn):可以提升安全性,因?yàn)槲覀兊暮笈_(tái)網(wǎng)址是不公開(kāi)的,避免用戶(hù)猜測(cè)一些后臺(tái)的信息。
.env配置按照1所述編輯,默認(rèn)之一個(gè)是主庫(kù)。
database.php
愿大家在新的一年心想事成,萬(wàn)事如意?。?!
thinkphp怎么連接數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)的配置文件有多種定義方式:
之一種:在項(xiàng)目配置文件里面定義
return array(
‘DB_TYPE’=> ‘mysql’,
‘DB_HOST’=> ‘localhost’,
‘DB_NAME’=>’thinkphp’,
‘DB_USER’=>’root’,
‘DB_PWD’=>”,
‘DB_PORT’=>’3306’,
‘DB_PREFIX’=>’think_’,
// 其他項(xiàng)目配置參數(shù)………
);
第二種 在模型類(lèi)里面定義
protected $connection = array(
‘dbms’ => ‘mysql’,
‘username’ => ‘username’,
‘password’譽(yù)扒 => ‘password’,
‘hostname’ => ‘localhost’,
‘hostport’ => ‘3306’,
‘database’ => ‘dbname’
);
// 或者使用下面的定義
protected $connection = “
第三種 使用數(shù)組傳參數(shù)
$DSN = array(
‘dbms’ => ‘mysql’,
‘username’ => ‘username’,
‘password’ => ‘password’,
‘hostname’喊虛春 => ‘localhost’,
‘hostport’ => ‘3306’鄭耐,
‘database’ => ‘dbname’
);
$db = new Db($DSN);
thinkphp.連接數(shù)據(jù)庫(kù)
在應(yīng)用配置目錄或者模塊配置目錄(不清楚配置目錄位置的話(huà)參考配置章節(jié))下面的database.php中(后面統(tǒng)稱(chēng)為數(shù)據(jù)庫(kù)配置文件)配置下面的數(shù)據(jù)庫(kù)參數(shù):
return
// 數(shù)據(jù)庫(kù)類(lèi)型
‘type’=> ‘mysql’,
// 服務(wù)器地址
‘hostname’ => ‘127.0.0.1’,
/納此/ 數(shù)據(jù)庫(kù)名
‘鄭茄握database’ => ‘thinkphp’,
// 數(shù)據(jù)庫(kù)用戶(hù)名
‘username’ => ‘root’,
// 數(shù)據(jù)庫(kù)密碼
‘password’ => ”,
// 數(shù)據(jù)庫(kù)連接端口
‘hostport’ => ”,
// 數(shù)據(jù)庫(kù)連接參數(shù)
‘params’ => ,
// 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
‘charset’ => ‘utf8’,
// 數(shù)據(jù)庫(kù)表前綴
‘prefix’ => ‘think_’,
>;
系統(tǒng)默認(rèn)支持的數(shù)據(jù)庫(kù)type包括:
type數(shù)據(jù)庫(kù)
mysqlMySQL
sqliteSqLite
pgsqlPgSQL
sqlsrvSqlServer
type參數(shù)支持命名空間完整定義,不帶命名空間定義的話(huà),默認(rèn)采用\think\db\connector作為命名空間,如果使用應(yīng)用自己擴(kuò)展的數(shù)據(jù)庫(kù)驅(qū)喊慶動(dòng),可以配置為:
// 數(shù)據(jù)庫(kù)類(lèi)型
‘type’=> ‘\org\db\Mysql’,
表示數(shù)據(jù)庫(kù)的連接器采用 \org\db\Mysql類(lèi)作為數(shù)據(jù)庫(kù)連接驅(qū)動(dòng),而不是默認(rèn)的\think\db\connector\Mysql。
關(guān)于thinkphp 數(shù)據(jù)庫(kù)配置文件的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專(zhuān)業(yè)的建站服務(wù),為您量身定制,歡迎來(lái)電(028-86922220)為您打造專(zhuān)屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
本文標(biāo)題:thinkphp數(shù)據(jù)庫(kù)配置文件詳解(thinkphp數(shù)據(jù)庫(kù)配置文件)
本文地址:http://m.5511xx.com/article/djiodsj.html


咨詢(xún)
建站咨詢(xún)
