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的数字,他接受了我放在那里的数字