我有这个配置文件。
<?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_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);
&GT;
我需要得到这样的东西。
<?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);
?>
我的错误在哪里。 所有原始文件都运行良好。
答案 0 :(得分:0)
为什么不为连接变量使用数组语法?
$connexion[1]=['server'=>'10.0.0.101','port'=>'3306','user'=>'user','password'=>'123456','dbname'=>'name'];
或
$s_ipserver[1] = "10.0.0.101";
$db_porta[1] = "3306";
$db_user[1] = "user";
$db_password[1] = "123456";
$db_name[1] = "name";
答案 1 :(得分:0)
如果要创建另一个连接,则需要将4th param设置为true,否则它将重新使用现有连接,导致最后选择的DB成为两个连接中使用的DB:
$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.
答案 2 :(得分:-1)
它不是一个干净漂亮的代码,但解决了我的问题,服务器需要通过从小变量$dbL
选择3个可能的连接来绑定自己
在/pasta/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";
?>
在/pasta/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;
?>
在/pasta/connect.php
<?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);
?>