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

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


咨詢
建站咨詢
