使用php与mysql数据库建立多个连接

时间:2010-02-05 20:20:49

标签: php

假设我在给定页面上调用多个函数。

function getProfile {
    <mysql code to connect>
    ...
    ...
}

function getMatchingUsers {
    <mysql code to connect>
    ...
    ...
}

如果我在给定页面上调用上面的两个函数,那么打开与DB的多个连接会不会?我假设php会在第一个函数运行后自动关闭数据库连接,但是它会自动为第二个函数打开另一个连接。我的问题是,如果我的页面对数据库进行了大量调用,该怎么办?这对记忆,io等有益吗?

3 个答案:

答案 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