gpt4 book ai didi

php - 与数据库服务器建立动态连接

转载 作者:行者123 更新时间:2023-11-30 22:20:27 28 4
gpt4 key购买 nike

我从一位 friend 那里收到了一个现成的虚拟航类预订系统,我正在使用它,它基于 1 个用户名和密码下的 2 个数据库。

我的主机的问题是为每个数据库生成唯一的主机、用户名和密码。这个系统的好处是所有连接脚本都在一个文件中,我已经修改了大部分部分但我坚持主要部分;函数 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(!($sqlconn=@mysql_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(!($con=@mysql_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--

global $sqlconn; 的问题来了。连接将始终连接到 $rfedatabase 主机,不会切换到另一个主机。

我已经用这段代码改变了 global $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;
}

知道如何建立与所需数据库相关的连接吗?

最佳答案

好吧,我发现了问题,我只是忘了对我的全局变量执行 SQL 指针。

global $rfedatabase, $navdatabase, $host_rfe, $host_nav, $port, $login_db_rfe, $pass_db_rfe, $login_db_nav, $pass_db_nav;

if($db == $rfedatabase){
$sqlconn=mysql_connect("$host_rfe:$port",$login_db_rfe,$pass_db_rfe);
} else {
$sqlconn=mysql_connect("$host_nav:$port",$login_db_nav,$pass_db_nav);
}

关于php - 与数据库服务器建立动态连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36737183/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com