假设我在给定页面上调用多个函数。
function getProfile {
<mysql code to connect>
...
...
}
function getMatchingUsers {
<mysql code to connect>
...
...
}
如果我在给定页面上调用上面的两个函数,那么打开与DB的多个连接会不会?我假设php会在第一个函数运行后自动关闭数据库连接,但是它会自动为第二个函数打开另一个连接。我的问题是,如果我的页面对数据库进行了大量调用,该怎么办?这对记忆,io等有益吗?
答案 0 :(得分:1)
为什么不使用某种形式的连接池。这样,池就会维护一组连接,而您的应用程序只是从池中获取连接并返回它们。池根据需要查看打开和关闭(并维护一组打开的连接)。
This SO answer涵盖了更多选项。 PHP和连接池。
答案 1 :(得分:0)
最简单的方法是在脚本开头建立连接。 mysql函数将使用最后一个打开的连接来完成它们的工作,因此不需要在每个函数内部进行连接。
//Start of your file
mysql_connect()
function a(){
// no connect here, just use mysql
mysql_query($sql)
}
function b(){
// no connect here, just use mysql
mysql_query($sql)
}
答案 2 :(得分:0)
如果要连接到同一个mysql服务器,请尝试使用1个连接。
$host = "localhost";
$user = "user";
$pass = "password";
$database = "dbname";
$linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_select_db($database, $linkID) or die("Could not find database.");
请注意,您有一个$ linkID,这是您用来引用它的内容。像这样建立一个特定于连接的查询:
$resultID = mysql_query($query, $linkID) or die("Data not found.");
完成后,关闭该特定连接
mysql_close($linkID)
如果您有超过1个mysql服务器地址,请使用单独的引用,如$ linkID2