2011-07-17 120 views
1

再次感謝你在看我的問題。更改當前選定的數據庫

我寫一個PHP程序,其中對於我第一次使用存儲在一個MySQL服務器環境中的多個數據庫。

第一數據庫處理的通用數據,諸如登錄信息和用戶簡檔(包括屬於該配置文件的數據庫的名稱)

的其他數據庫(如上文所暗示)是特定於每個配置文件和包含敏感信息,因此保持他們獨立。這些數據庫中有很多信息,每個表中包含數百條和數千條記錄。

所以到了我的問題。

我已經建立約10的網頁,並使用PHP「require_once()」來包括所共有的各頁,如數據庫連接件。我確保每個頁面在執行後關閉連接。

這個劇本中,我創建了下面的函數

// Function to connect a specific database 
    function dbc($dbhost, $dbuser, $dbpass, $compDbase){   
     return mysqli_connect($dbhost, $dbuser, $dbpass, $compDbase) or die ('Error connecting to mysql server, database supplied' . mysqli_error());  
    } 

前三個變量是靜態的,在同一個文件多數民衆贊成設置包括在需要連接的所有文件。在這裏調用時添加了$ compDbase

dbc($dbhost, $dbuser, $dbpass, 'database_user1'); 

但是這似乎不起作用。我曾嘗試添加一個mysqli_close($ dbc);這是通用數據庫的名稱,在調用該函數之前。我也試過

mysqli_select_db('database_user1', $dbc); 

,看看我是否可以更改當前選擇他們都沒有工作,數據庫和mysqli的不拋出使用信息的任何mysqli_error();

任何提示?



我回答了。

所有我需要添加是在查詢中

所以首先我使用的通用數據庫連接$ DBC的「database.table」。代碼看起來像這樣

$query = "SELECT * FROM database_user1.skill"; 
+0

你爲什麼要使用此兩個以上的數據庫?沒有人可以看到你的數據庫(除非你讓他們),爲什麼要在另一個數據庫中存儲敏感數據? –

+0

其實它更多用於維護,數據庫是在人們註冊該服務時創建的,並且所有特定信息都包含在該數據庫中,當他們關閉他們的帳戶時數據庫被刪除。 –

回答

1

嘿,你可不只是簡單地執行mysql命令:使用db1,使用db2?

+0

這是一個非常好的建議,我沒有嘗試過,但應該是我嘗試的第一件事!我會回到你的 –

+0

不能得到這個工作在PHP中,我試圖發送第一個查詢使用database_user1,然後在表上的查詢,但它不起作用。你將如何實現這個? –

+0

@ Paul-Chambers對我很好奇,當你在當前數據庫中插入或更新某些內容時它是否工作?你知道我要去哪裏嗎? – Max