在我们的旧应用程序中,我们会看到一段时间以来的奇怪行为。
我们有多个页面需要多个数据库的数据,一切都运行良好,直到最近。
如果我们需要多个数据库,我们就像这样初始化它们:
$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连接。
有谁知道什么会导致这个问题?
答案 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 );