例如,我在名为sessionhandler.php的会话处理程序文件的sessionhandler.php函数中使用以下连接代码在会话处理程序和名为AB的MySql数据库之间建立连接。
<---sessionhandler.php--->
function _open()
{
global $db;
$hostname_AB = "localhost";
$database_AB = "database";
$username_AB = "user";
$password_AB = "pass";
$AB = mysql_pconnect($hostname_AB, $username_AB, $password_AB) or trigger_error(mysql_error(),E_USER_ERROR);
$db = mysql_select_db($database_AB, $AB) or die("Couldn't select database");
if ($db = mysql_pconnect($hostname_AB, $username_AB, $password_AB))
{
return mysql_select_db('sessionhandler', $db);
}
return FALSE;
}function _close()
{
global $db;
return mysql_close($db);
}问题是,我不能使用上面第一个块中引用的连接代码对任何其他表进行查询,例如my_table1、my_table2、etc. of AB数据库。第一个代码块仅在会话处理程序文件sessionhandrer.php和数据库表sessionhandler之间建立连接。
为了查询数据库AB的其他表,我必须使用包含以下代码的单独连接文件:
$hostname_AB = "localhost";
$database_AB = "database";
$username_AB = "user";
$password_AB = "pass";
$AB = mysql_pconnect($hostname_AB, $username_AB, $password_AB) or
trigger_error(mysql_error(),E_USER_ERROR);使用上述连接代码的查询示例忽略sessionhandler.php的连接代码:
mysql_select_db($database_AB, $AB);
$query_test = "SELECT users.id, users.name FROM users WHERE users.id = >= 1";
$test = mysql_query($query_test, $AB) or die (mysql_error());
$row_test = mysql_fetch_assoc($test);
$totalRows_test = mysql_num_rows($test);缺少上述连接文件将导致典型的MySql连接错误,以防来自AB数据库的其他表有任何查询。
如何将这两个连接文件组合起来,以便对数据库AB的所有表进行查询
发布于 2014-05-13 16:35:37
虽然我没有时间将这两个连接查询合并为一个,但数学逻辑说
if ($db = mysql_pconnect($hostname_AB, $username_AB, $password_AB))
{
return mysql_select_db('sessionhandler', $db);
}上面的等式块将数据库连接限制在单个表sessionhandler上,这就是为什么使用此连接代码查询其他表无效的原因。
https://stackoverflow.com/questions/23628235
复制相似问题