我正在处理使用mysql
数据库操作功能的旧现有项目。现有系统连接到数据库,例如cdcol
. 可以通过站点明智地连接到该数据库。现在我想从另一个数据库中获取数据crawlerdb
,将获取的数据分配给一个数组并关闭与该数据库的连接。与第二个数据库的连接在函数 sayGetAccess
中,每次需要额外数据时,都会调用该函数,获取数据并关闭与第二个数据库的连接。我想要的是每次都应该可以连接到第一个数据库。
我面临的问题是。如果我不关闭与第二个数据库的连接。然后调用函数后使用mysql查询GetAccess
,仍然从第二个数据库中搜索项目,因为与第二个数据库的连接是活动的。如果我关闭与第二个数据库的连接,查询仍然不起作用。以下代码解释了我的情况。
<?php
//$conn1 is permanent connection that is used sitewise.
$conn1=mysql_connect("localhost","root","",true) or die(mysql_error());
mysql_select_db("cdcol",$conn1) or die(mysql_error());
echo "1. Current Database = ".mysql_current_db();//prints cdcol
echo "<Br> Function Returned Value = ".GetAccess();
echo "<Br>2. Current Database = ".mysql_current_db(); //In GetAccess function, which is called above if mysql_close($conn2) is used, the mysql_current_db() returns empty value.
//A FUNCTION TO GET EXTRA DATA FROM SECOND DATABASE
function GetAccess(){
$conn2=mysql_connect("localhost","root","",true) or die(mysql_error());
mysql_select_db("crawlerdb",$conn2) or die(mysql_error());
$test=mysql_query("select * from tbllensinfo",$conn2); //here i have used $conn2 as link identifier
$var= mysql_num_rows($test);
mysql_close($conn2);
return $var;
}
//FUNCTION TO IDENTIFY WHICH DATABASE IS CURRENTLY BEING USED
function mysql_current_db() {
$r = mysql_query("SELECT DATABASE()") or die(mysql_error());
return mysql_result($r,0);
}
$res=mysql_query("select * from cds"); //here link identifier $conn1 is not used, i cant change this code because there are several 100s codes, so not possible to change in all of them. Everything will work if $conn1 is used here though
echo "<br>".mysql_num_rows($res);
?>
注意: 这两个数据库托管在同一台服务器上,但数据库用户不同,其中一个无法访问其他数据库。
所以简而言之,我需要经常从第二个数据库中获取数据,同时始终可以连接到第一个数据库。
任何帮助将不胜感激,谢谢!
谢谢莎米拉