Php 如何与mysql建立子连接?

Php 如何与mysql建立子连接?,php,mysql,Php,Mysql,我有这个配置文件 <?PHP $s_ipserver1 = "10.0.0.101"; $db_porta1 = "3306"; $db_user1 = "user"; $db_password1 = "123456"; $db_name1 = "name"; $s_ipserver2 = "xxx.xxx.xxx.xxx"; $db_porta2 = "3306"; $db_user2 = "user"; $db_password2 = "12345

我有这个配置文件

<?PHP
$s_ipserver1 = "10.0.0.101";
$db_porta1    = "3306";
$db_user1     = "user";
$db_password1 = "123456";
$db_name1     = "name";

$s_ipserver2 = "xxx.xxx.xxx.xxx";
$db_porta2    = "3306";
$db_user2     = "user";
$db_password2 = "123456";
$db_name2     = "name";

$s_ipserver3 = "xxx.xxx.xxx.xxx";
$db_porta3    = "3306";
$db_user3     = "user";
$db_password3 = "123456";
$db_name3     = "name";
?>

我想把它转换成这样的东西

<?PHP

$dbL = "1";// Que servidor é este? 1, 2 ou 3.

$s_ipserver1 = "10.0.0.101";
$db_porta1    = "3306";
$db_user1     = "user";
$db_password1 = "123456";
$db_name1     = "name";

$s_ipserver2 = "xxx.xxx.xxx.xxx";
$db_porta2    = "3306";
$db_user2     = "user";
$db_password2 = "123456";
$db_name2     = "name";

$s_ipserver3 = "xxx.xxx.xxx.xxx";
$db_porta3    = "3306";
$db_user3     = "user";
$db_password3 = "123456";
$db_name3     = "name";

$s_ipserver  = "$s_ipserver$dbL";
$db_porta    = "$db_porta$dbL";
$db_user     = "$db_user$dbL";
$db_password = "$db_password$dbL";
$db_name     = "$db_name$dbL";
?>
<?PHP
include_once("/pasta/config.php");
$db_host      = "$s_ipserver:$db_porta";
$db_link      = mysql_connect($db_host, $db_user, $db_password) or die (mysql_error ());
$db_connect   = mysql_select_db($db_name, $db_link);
?>

这是一个连接文件

<?PHP
include_once("/pasta/config.php");
$db_host1     = "$s_ipserver1:$db_porta1";
$db_link1     = mysql_connect($db_host1, $db_user1, $db_password1) or die (mysql_error ());
$db_connect1  = mysql_select_db($db_name1, $db_link1);

我需要像这样的东西

<?PHP

$dbL = "1";// Que servidor é este? 1, 2 ou 3.

$s_ipserver1 = "10.0.0.101";
$db_porta1    = "3306";
$db_user1     = "user";
$db_password1 = "123456";
$db_name1     = "name";

$s_ipserver2 = "xxx.xxx.xxx.xxx";
$db_porta2    = "3306";
$db_user2     = "user";
$db_password2 = "123456";
$db_name2     = "name";

$s_ipserver3 = "xxx.xxx.xxx.xxx";
$db_porta3    = "3306";
$db_user3     = "user";
$db_password3 = "123456";
$db_name3     = "name";

$s_ipserver  = "$s_ipserver$dbL";
$db_porta    = "$db_porta$dbL";
$db_user     = "$db_user$dbL";
$db_password = "$db_password$dbL";
$db_name     = "$db_name$dbL";
?>
<?PHP
include_once("/pasta/config.php");
$db_host      = "$s_ipserver:$db_porta";
$db_link      = mysql_connect($db_host, $db_user, $db_password) or die (mysql_error ());
$db_connect   = mysql_select_db($db_name, $db_link);
?>

我的错误在哪里。
所有原始文件都工作正常。

为什么不为连接变量使用数组语法

$connexion[1]=['server'=>'10.0.0.101','port'=>'3306','user'=>'user','password'=>'123456','dbname'=>'name'];


这不是一个干净漂亮的代码,但解决了我的问题,服务器需要从3个可能的连接中选择一个小变量
$dbL

在/vista/config.php中

<?PHP

$dbL = "1";// Que servidor é este? 1, 2 ou 3.

$s_ipserver1 = "10.0.0.101";
$db_porta1    = "3306";
$db_user1     = "user";
$db_password1 = "123456";
$db_name1     = "name";

$s_ipserver2 = "xxx.xxx.xxx.xxx";
$db_porta2    = "3306";
$db_user2     = "user";
$db_password2 = "123456";
$db_name2     = "name";

$s_ipserver3 = "xxx.xxx.xxx.xxx";
$db_porta3    = "3306";
$db_user3     = "user";
$db_password3 = "123456";
$db_name3     = "name";
?>

在/意大利面/subconnect.php中

<?php 
include_once("/pasta/config.php");
$ipserver  = 's_ipserver'. $dbL;
$porta     = 'db_porta'. $dbL;
$user      = 'db_user'. $dbL;
$password  = 'db_password'. $dbL;
$name      = 'db_name'. $dbL;
?>
<?PHP
include_once("/pasta/subconnect.php");
$host      = $$ipserver . ':'. $$porta;
$link      = mysql_connect($host, $$user, $$password) or die (mysql_error ());
$db_connect   = mysql_select_db($$name, $link);
?>

在/意大利面/connect.php中

<?php 
include_once("/pasta/config.php");
$ipserver  = 's_ipserver'. $dbL;
$porta     = 'db_porta'. $dbL;
$user      = 'db_user'. $dbL;
$password  = 'db_password'. $dbL;
$name      = 'db_name'. $dbL;
?>
<?PHP
include_once("/pasta/subconnect.php");
$host      = $$ipserver . ':'. $$porta;
$link      = mysql_connect($host, $$user, $$password) or die (mysql_error ());
$db_connect   = mysql_select_db($$name, $link);
?>

如果要创建另一个连接,则需要将第4个参数设置为true,否则将恢复现有连接,从而使最后选定的数据库成为两个连接中使用的数据库:

$db_link      = mysql_connect($db_host, $db_user, $db_password, TRUE) or die (mysql_error ());
$db_connect   = mysql_select_db($db_name, $db_link);
有关第4个参数的更多信息:

If a second call is made to mysql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The new_link parameter modifies this behavior and makes mysql_connect() always open a new link, even if mysql_connect() was called before with the same parameters. In SQL safe mode, this parameter is ignored.

mysql\u query
是一个过时的接口,不应在新的应用程序中使用,并将在未来的PHP版本中删除。一个现代的替代品。如果您是PHP新手,可以通过类似的指南来解释最佳实践。为什么您要定义这么多变量而不是单个变量(如数组)。感谢您的回答@tadman,但我的系统仍然可以使用MYSQL,我将尽一切努力保持此upPDO只是访问MYSQL的另一种更好的方式。它不需要切换数据库。不要认为
mysql\u query
实际上是这样做的,因为它从20世纪90年代以来就没有出现过。你应该清楚地意识到mysql接口已经被弃用,请查看php手册以确认,升级失败可能会使FutureProvision yihr系统hardFirst样式出现语法错误<代码>$array=array('key'=>'val')@undone['k'=>'v']数组语法。php5.3已经过时了,我的问题不是与3台服务器有关,而是需要更改$dbL的数字,他接受了我放在那里的数字