例如,我在名为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_table1
、my_table2
、etc.
。第一代码块仅在会话处理程序文件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,这主要是为什么使用该连接代码对其他表的查询是无效的。