有一个名为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