有一個名爲function.php
的文件,我打電話到我的網站的所有頁面require_once
。該文件包含超過一百個函數。如何在PHP中處理太多的數據庫連接而不增加最大連接數?
我從mysqli_connect()
,右max_user_connections
錯誤表明
mysqli_query() expects parameter 1 to be mysqli, boolean given
錯誤後,當有太多的遊客或搜索引擎機器人爬行快。
功能文件是這樣的:
<?php
function db_connect(){
$link=mysqli_connect("host","dbuser","dbpass","dbname");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($link,"set names 'utf8'");
}
db_connect();
function func_1(){
$result=mysqli_query($link,"select * from ...");
...
}
function func_2(){
$result=mysqli_query($link,"select * from ...");
...
}
.
.
.
function func_100(){
$result=mysqli_query($link,"select * from ...");
...
}
?>
最後我關閉數據庫連接。因爲我已經檢查了每個用戶的最大連接數,我的數據庫是50,主機提供商不會改變它(這就足夠了,他們說)。
那麼,一般如何處理這個問題呢? (簡單的PHP或OOP)
我不知道發生了什麼問題 - 我懷疑錯誤是在你沒有向我們顯示的代碼的某個部分 - ,但是你的'db_connect'函數將一個連接分配給一個局部變量,然後永遠不會傳遞出來。這會燒你的地方! –
對不起,我忘了。我在需要的代碼中使用「全局$鏈接」。它通常工作正常,但有時我得到這個錯誤。 – Rasoul