PHP鏈接數(shù)據(jù)庫(kù)有幾種方式
創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),品牌網(wǎng)站設(shè)計(jì),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。
mysqli:
?php
$servername = "localhost";
$username = "username";
$password = "password";
// 創(chuàng)建連接
$conn = new mysqli($servername, $username, $password);
// 檢測(cè)連接
if ($conn-connect_error) {
die("連接失敗: " . $conn-connect_error);
}
echo "連接成功";
?
也可以使用PDO進(jìn)行鏈接,前提是你必須在php.ini中開啟PDO:
?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
echo "連接成功";
}
catch(PDOException $e)
{
echo $e-getMessage();
}
?
建議使用PDO,功能更加強(qiáng)大,兼容各種數(shù)據(jù)庫(kù)
關(guān)于這個(gè)問題,差不多就是這個(gè)樣子的了,你如果不明白,可以自己去后盾瞅瞅,我這些都是在后盾上學(xué)的,有空可以去看一下,就算不喜歡也沒關(guān)系啊,何樂而不為呢?
前邊介紹了負(fù)載均衡,mysql同步,接下來介紹tp6分布式部署多個(gè)數(shù)據(jù)庫(kù),實(shí)現(xiàn)讀寫分離。
tp6的分布式部署讀和寫仍然是一個(gè)系統(tǒng),這里我們分開操作,給用戶展示的就是從數(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ī)顯示的。
打開.env文件進(jìn)行編輯
說明:
2、編輯database.php
找到deploy設(shè)置為1分布式部署,下邊不要改,都是讀,寫入的也就是后端的我們單獨(dú)建站連接主庫(kù)。
配置完成,tp6使用的是mt_rand取隨機(jī)數(shù)判斷使用哪個(gè)數(shù)據(jù)庫(kù)。
3、數(shù)據(jù)庫(kù)交互寫操作
比如瀏覽量沒必要每次都去更新數(shù)據(jù)庫(kù),可以先使用redis緩存,存夠1000的整數(shù)倍,再去更新數(shù)據(jù)庫(kù)。
4、后臺(tái)獨(dú)立,也就是寫
可以前后端分離,單獨(dú)做一個(gè)網(wǎng)站(沒有前端)使用ip訪問或者獨(dú)立的域名連接后臺(tái)。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負(fù)載均衡,肯定是多個(gè)一樣的網(wǎng)站,如果圖片存放到一個(gè)站,別的就不能訪問了,可以單獨(dú)設(shè)置一個(gè)附件(壓縮包,圖片等)服務(wù)器,可以使用二級(jí)域名連接,這就要求我們上傳附件的時(shí)候,是上傳到附件服務(wù)器。
jqueryURL
API控制器apdpic方法
說明:
也可以先傳到后臺(tái)服務(wù)器然后使用(php)ftp上傳,或者是通過curl上傳到附件服務(wù)器,感覺那樣畢竟麻煩,直接設(shè)置跨域會(huì)比較簡(jiǎn)單。
也測(cè)試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實(shí)現(xiàn)讀寫分離(在一個(gè)站點(diǎn))
我個(gè)人是不喜歡這樣的,負(fù)載均衡應(yīng)該是均衡地讀,也就是前臺(tái)單獨(dú)一個(gè)站點(diǎn),后端的寫是另一個(gè)獨(dú)立的站點(diǎn),看個(gè)人喜好吧。
獨(dú)立后臺(tái)的優(yōu)點(diǎn):可以提升安全性,因?yàn)槲覀兊暮笈_(tái)網(wǎng)址是不公開的,避免用戶猜測(cè)一些后臺(tái)的信息。
.env配置按照1所述編輯,默認(rèn)第一個(gè)是主庫(kù)。
database.php
愿大家在新的一年心想事成,萬事如意!??!
1.鏈接數(shù)據(jù)庫(kù)所在的服務(wù)器 mysql_connect 如:mysql_connect("127.0.0.1","root","111111") or die("未能鏈接上");
2.選擇數(shù)據(jù)庫(kù) mysql_select _db($db) or die("數(shù)據(jù)庫(kù)鏈接錯(cuò)誤!")
3.建立資源標(biāo)識(shí)符 $r= mysql_query($sql)
4.讀出 mysql_fetch_rows($r),mysql_fetch_assoc($r)
如:if(mysql_num_rows($r)0){
while($rows=mysql_fetch_assoc($r)){
echo $rows["id"]."-".$rows["name"];
}
}
5.釋放資源 mysql_query($r);