PHP MySQL 与三个数据库的连接


php mysql connection with three databases

iam 为我的项目使用 3 个不同的数据库。它包含相同的密码和用户名。代码是

$con = mysql_pconnect(hostname, username, password) or die("Connection     Error: " . mysql_error());
mysql_select_db(database_name, $con) or die("Error connecting to DB. " . mysql_error());
$con1 = mysql_pconnect(hostname, username, password) or die("Connection Error: " . mysql_error());
mysql_select_db(database_name, $con) or die("Error connecting to DB. " . mysql_error());
$con2 = mysql_pconnect(hostname, username, password) or die("Connection Error: " . mysql_error());
mysql_select_db(database_name, $con) or die("Error connecting to DB. " . mysql_error());

三个数据库未正确连接。

看起来您可能缺少连接字符串变量前面的任一$

$con = mysql_pconnect($hostname, $username, $password) or die("Connection     Error: " . mysql_error());

或者您需要确保 tn 在条目周围使用引号。

不过,在这一点上,如果您正在编写新代码,则可能应该使用 PDO 连接到数据库。

编辑:此外,即使您正在建立新连接,您也会继续使用您在mysql_select_db语句中定义的第一个$con(都使用$con而不是$con1$con2)。

$con = mysql_pconnect($hostname, $username, $password) or die("Connection     Error: " . mysql_error());
mysql_select_db($database_name, $con) or die("Error connecting to DB. " . mysql_error());
$con1 = mysql_pconnect($hostname, $username, $password) or die("Connection Error: " . mysql_error());
mysql_select_db($database_name1, $con1) or die("Error connecting to DB. " . mysql_error());
$con2 = mysql_pconnect($hostname, $username, $password) or die("Connection Error: " . mysql_error());
mysql_select_db($database_name2, $con2) or die("Error connecting to DB. " . mysql_error());

您在每次选择中都选择了第一个数据库。这是正确的。另请注意,您必须在 3 个 diff 变量中使用 3 个不同的数据库名称,如下所示

$database_name="dbase";
$database_name1="dbase1";
$database_name2="dbase2";

现在它将连接到所有 3 个数据库,而不是像您的代码中那样只连接到一个数据库。

如果这是您的代码,您将连续选择相同的数据库空闲时间。大概应该是这样的

 $con = mysql_pconnect(hostname, username, password) or die("Connection     Error: " . mysql_error());
        mysql_select_db(database_name, $con) or die("Error connecting to DB. " . mysql_error());
        $con1 = mysql_pconnect(hostname, username, password) or die("Connection Error: " . mysql_error());
        mysql_select_db(database_name1, $con1) or die("Error connecting to DB. " . mysql_error());
        $con2 = mysql_pconnect(hostname, username, password) or die("Connection Error: " . mysql_error());
       mysql_select_db(database_name2, $con2) or die("Error connecting to DB. " . mysql_error());

(在mysql_select_db中更改了数据库名称和连接)

看起来取决于..如果您连接到3个不同的主机,那么您的连接参数可能会更改,但数据库名称可以相同。但是,如果尝试连接到同一数据库服务器,则必须选择 3 个不同的数据库。很简单..为什么要选择同一个数据库 3 次?