0

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

我们有多个页面需要多个数据库的数据,直到最近一切正常。

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

$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 连接。

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

4

2 回答 2

5

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

   $dbcon2 = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD, true)
于 2013-11-06T12:30:15.450 回答
0

释放结果集

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

    $linkDatabaseTwo = fConnectToDatabase( "Database2" );
    mysql_query( "QUERY", $linkDatabaseTwo );
    mysql_free_result( $linkDatabaseTwo );
于 2013-11-06T12:28:34.053 回答