此代码连接到第一个数据库,循环并选取一个名为“id”的字段,并将id用作连接[数据库名称]到函数中的另一个数据库。所有似乎都工作,除了在函数中,id的值不会改变,因此无法连接到db,即使它在局部变量中更改。我怀疑我需要解开并设置。有帮助吗?感谢
<?
$dbhost = "***";
$dbname = "users";
$dbuser = "****";
$dbpass = "***";
function myRecordHandler($record)
{
global $dbhost;
global $dbuser;
global $dbpass;
global $id;
global $conn2;
$db = mysql_select_db($id,$conn2) ;
$quantity = $record["QUANTITY"];
$price = $record["PRICE"];
$mytotal ="INSERT into `mytotal`(`quantity`,`price`) VALUES ($quantity,$price)";
mysql_query($mytotal,$conn2);
}
$conn1 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE) or die("MySQL Error: " .mysql_error());
$conn2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE) or die("MySQL Error: " . mysql_error());
mysql_select_db($dbname,$conn1) or die("MySQL Error: " . mysql_error());
$query = "SELECT id,url FROM table userdata";
$result = mysql_query($query,$conn1);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$id =$row['id'];
$url=$row['url'];
MagicParser_parse($url,"myRecordHandler","xml|PRODUCTS/PRODUCT/");
}
?>
答案 0 :(得分:0)
我怀疑问题是myRecordHandler()
是从MagicParser_parse()
内调用的。它可能是在不共享相同全局名称空间的单独执行上下文中调用的。基于您将"myRecordHandler"
作为字符串传递的事实,这只是一种预感。