簡體   English   中英

在PHP MySQL中切換數據庫連接

[英]Switching database connections in PHP MySQL

我使用PHP MySQL制作了一個Web應用程序。 開發后,我需要添加允許對年度數據進行存檔的功能,這將轉化為一個臨時解決方案,在該解決方案中,我可以復制整個數據庫。

問題是,我有一個標准的“ connections.php”文件,該文件包含在我所有的系統php文件中,該文件存儲數據庫服務器身份驗證詳細信息和名稱。 代碼如下所示:

$hostname_db_ntu = "localhost";
$database_db_ntu = "ntu";
$username_db_ntu = "root";
$password_db_ntu = "";
$db_ntu = mysql_pconnect($hostname_db_ntu, $username_db_ntu, $password_db_ntu) or trigger_error(mysql_error(),E_USER_ERROR); 

那么,如何使我的系統即時切換數據庫? 我需要基本上更改'$ database_db_ntu'變量值。 是使用另一個PHP編輯php文件的唯一選擇嗎?

(我知道mysql_ *已過時,並且已盡可能地對其進行了修正。)

編輯:澄清:

整個系統使用具有多個表的數據庫,並且所有頁面都使用上面包含此代碼的包含文件與該數據庫連接。

我需要一個解決方案,在其中我可以以某種方式修改此包含的文件以反映所選的數據庫,並據此創建連接。

如何使用if .. else語句:

if ($dbcon1) {
$hostname_db_ntu = "localhost";
$database_db_ntu = "ntu";
$username_db_ntu = "root";
$password_db_ntu = "";
$db_ntu = mysql_pconnect($hostname_db_ntu, $username_db_ntu, $password_db_ntu) or trigger_error(mysql_error(),E_USER_ERROR);
} else {

//database connection2 here
}

然后,您需要為$ dbcon1傳遞一個值,以決定使用哪個連接。

建立另一個數據庫連接。 那應該工作。

$db_ntu2 = mysql_pconnect($hostname_db_ntu2, $username_db_ntu2, $password_db_ntu2) or trigger_error(mysql_error(),E_USER_ERROR);
      $hostname_db_ntu = "your host name";
       $database_db_ntu = "your database name";
       $username_db_ntu = "root or username you have set";
      $password_db_ntu = "";
     $db_ntu = mysql_connect($hostname_db_ntu, $username_db_ntu, $password_db_ntu) or    trigger_error(mysql_error(),E_USER_ERROR); 

   $db_connect = mysql_select_db(" $database_db_ntu" ,$db_ntu) or die("!db");

所以,這就是我所做的。 我根據用戶要使用的數據庫版本設置會話變量。 然后,我如下編輯了全局的“ connections.php”腳本:

session_start();
$hostname_db_ntu = "localhost";
if(isset($_SESSION['version']))
$database_db_ntu = $_SESSION['version'];
else
$database_db_ntu = "ntu";
$username_db_ntu = "root";
$password_db_ntu = "";
$db_ntu = mysql_pconnect($hostname_db_ntu, $username_db_ntu, $password_db_ntu) or trigger_error(mysql_error(),E_USER_ERROR); 

這種方法的優點是,我可以允許用戶切換數據庫,而不必去編輯使用該數據庫的每個php文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM