无法使用会话处理程序中定义的连接代码查询MySql表


Unable to query MySql table using the connection code defined in session handler

例如,我在名为sessionhandler.php的会话处理程序文件的open函数中使用以下连接代码来建立会话处理程序和名为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);
}

问题是,我无法使用上面第一块中引用的连接代码查询任何其他表,例如AB数据库的my_table1my_table2etc.。第一代码块仅在会话处理程序文件CCD_ 9&仅数据库表CCD_ 10。

为了查询数据库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);

如果AB数据库的其他表有任何查询,则缺少上述连接文件会导致典型的MySql连接错误。

如何将这两个连接文件组合起来,以便查询数据库AB的所有表?

虽然我还没有时间将这两个连接查询合并为一个,但数学逻辑表明

if ($db = mysql_pconnect($hostname_AB, $username_AB, $password_AB))
{
return mysql_select_db('sessionhandler', $db);
}

上面的等式块将数据库连接限制为单个表CCD_ 15,这主要是为什么使用该连接代码对其他表的查询是无效的。