Я получил готовую систему бронирования виртуальных рейсов от одного друга, чтобы использовать ее, и она основана на 2 базах данных под 1 именем пользователя и паролем.Выполнение динамического подключения к серверу базы данных
Проблема, которая является моим хостом, генерирует уникальный хост, имя пользователя и пароль для каждой базы данных. Хорошая вещь в этой системе - все скрипты подключения находятся в одном файле, и я модифицировал большинство частей, но я застрял на основной части; function change_db.
Вот mysqlexec кода первый:
<?php
$ini = parse_ini_file("data.ini.php");
$host_rfe = $ini["host_rfe"];
$host_nav = $ini["host_nav"];
$rfedatabase = $ini["rfedatabase"];
$navdatabase = $ini["navdatabase"];
$login_db_rfe = $ini["login_db_rfe"];
$pass_db_rfe = $ini["pass_db_rfe"];
$login_db_nav = $ini["login_db_nav"];
$pass_db_nav = $ini["pass_db_nav"];
$port = $ini["port"];
// Connecting to Database
if(!([email protected]_connect("$host_rfe:$port",$login_db_rfe,$pass_db_rfe))) {
echo "<p align=\"center\"><big><img src=\"images/redx.png\"><br/><strong>It wasn't possible to connect to MySQL server. Please, check the configurations.</strong></big></p>";
exit;
}
// Select Database
if(!([email protected]_select_db($rfedatabase,$sqlconn))) {
echo "<p align=\"center\"><big><img src=\"images/redx.png\"><br/><strong>It wasn't possible to connect to database <i>$rfedatabase</i>. Please, check the configurations.</strong></big></p>";
exit;
}
/*========================================================================
Function: change_db
Usage: This function changes the pointer to another MySQL Database
Arguments:
$sqlconn - Connection pointer
$db - Destnation's database
========================================================================*/
function change_db($sqlconn,$db) {
global $sqlconn;
if(!($con=mysql_select_db($db,$sqlconn))) {
echo "<p align=\"center\"><big><img src=\"images/redx.png\"><br/><strong>It wasn't possible to connect to database <i>$db</i>. Please, check the configurations.</strong></big></p>";
exit;
}
return $con;
}
?>
Системы необходимо подключить всегда как к базе данных зависят от функций. Первоначально соединение с $ rfedatabase, а затем необходимо обменять на $ rfedatabase, а затем может вернуться к первому и так далее. Чтобы выполнить обмен данными с базой данных, система использует функцию change_db. Пример:
change_db($sqlconn,$navdatabase);
--some functions--
change_db($sqlconn,$rfedatabase);
--some functions--
Так вот встает вопрос с глобального $ sqlconn;. Соединение всегда будет $ rfedatabase хоста и не переключается на другой.
Я изменил глобальный $ sqlconn; с этим кодом, но не получилось:
if($db == $rfedatabase){
$sqlconn=mysql_connect("$host_rfe:$port",$login_db_rfe,$pass_db_rfe);
exit;
} else {
$sqlconn=mysql_connect("$host_nav:$port",$login_db_nav,$pass_db_nav);
exit;
}
Любая идея, как сделать соединение, имеющую отношение к необходимой базе данных?
Старые функции 'mysql _...()' устарели и были отмечены как устаревшие давным-давно. – arkascha
Yup. Пожалуйста, прекратите использовать 'mysql _ *()' функции (см. [Предупреждение в верхней части этой страницы] (http://php.net/manual/en/function.mysql-connect.php)) и рассмотрите возможность использования ['mysqli' ] (http://php.net/manual/en/book.mysqli.php) или ['pdo_mysql'] (http://php.net/manual/en/ref.pdo-mysql.php). –
Мне известно об использовании mysqli, просто изменение всего скрипта займет мало времени и я его работаю. Я просто хочу знать, что случилось с моей заменой глобального $ sqlconn выше –