MySQL使用上次打开的连接

时间:2013-11-06 12:23:48

标签: php mysql

在我们的旧应用程序中,我们会看到一段时间以来的奇怪行为。

我们有多个页面需要多个数据库的数据,一切都运行良好,直到最近。

如果我们需要多个数据库,我们就像这样初始化它们:

$linkDatabaseOne = fConnectToDatabase( "Database1" );
$linkDatabaseTwo = fConnectToDatabase( "Database2" );

之后我们执行这样的查询:

mysql_query( "QUERY", $linkDatabaseOne );
mysql_query( "QUERY", $linkDatabaseTwo );

fConnectToDatabase函数

function fConnectToDatabase( $Server = null ) {
    switch( $Server ) {
        case "Database2":
            $link = @mysql_connect ( "localhost", "USER", "PW" )
            or die ("No connection");
            mysql_select_db("Database2");
        break;
        case "Database1":
                       $link = @mysql_connect ( "localhost", "USER", "PW" )
                       or die ("No connection");
                       mysql_select_db("Database1");
        break;
   }
     return $link;
 }

但问题是,此时两个查询都将被抛出到Database2,因为那个查询具有最后一个openend连接。

有谁知道什么会导致这个问题?

2 个答案:

答案 0 :(得分:5)

看看你需要建立这样的配置:

   $dbcon2 = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD, true)

答案 1 :(得分:0)

释放结果集

    $linkDatabaseOne = fConnectToDatabase( "Database1" );
    mysql_query( "QUERY", $linkDatabaseOne );
    mysql_free_result( $linkDatabaseOne );

    $linkDatabaseTwo = fConnectToDatabase( "Database2" );
    mysql_query( "QUERY", $linkDatabaseTwo );
    mysql_free_result( $linkDatabaseTwo );