2012-09-26 91 views
-1

我正在編程在php與mysql數據庫交談。該代碼需要使用不同的包含文件(連接到不同的數據庫)基於用戶登錄。 我只是想知道,什麼是正確的方式來做到這一點。應在開頭包含所有文件,然後在我的查詢中指定數據庫名稱,或者保留文件並不更改查詢。 例如,對於用戶所需的數據庫訪問阿聯酋正確使用包含文件

if($user == 'a'){ 
include('/home/xxxxxxx/xxxxxx/connection.php'); // connection to database x 
$qry = "SELECT * FROM sometable"; 
} elseif($user == 'b'){ 
include('/home/xxxxxxx/xxxxxx/connect.php'); // connection to database y 
$qry = "SELECT * FROM sometable"; 
} 

上面會更好或以下: -

include('/home/xxxxxxx/xxxxxx/connection.php'); // connection to database x 
include('/home/xxxxxxx/xxxxxx/connect.php'); // connection to database y 
if($user == 'a'){ 
$qry = "SELECT * FROM databaseX.sometable"; 
} elseif($user == 'b'){ 
$qry = "SELECT * FROM databaseY.sometable"; 
} 

請告知。幫助表示讚賞。

+0

以上都不是。 –

+0

除非x和y是兩個完全不同的dbs,比如MSSQL和SQLite,否則不應該維護兩個不同的連接腳本。即使如此,還是有更好的方法來選擇使用哪個數據庫。 –

+0

如果您沒有使用'if-else'之外的連接;那麼方法1更好。 – hjpotter92

回答

0

在這段代碼中,加載頁面的大小沒有增加,因爲我們包含基於條件的文件。

if($user == 'a'){ 
include('/home/xxxxxxx/xxxxxx/connection.php'); // connection to database x 
$qry = "SELECT * FROM sometable"; 
} elseif($user == 'b'){ 
include('/home/xxxxxxx/xxxxxx/connect.php'); // connection to database y 
$qry = "SELECT * FROM sometable"; 
} 

而在此代碼加載頁面的規模在不斷擴大,因爲我們正在加載的所有文件在啓動

include('/home/xxxxxxx/xxxxxx/connection.php'); // connection to database x 
include('/home/xxxxxxx/xxxxxx/connect.php'); // connection to database y 
if($user == 'a'){ 
$qry = "SELECT * FROM databaseX.sometable"; 
} elseif($user == 'b'){ 
$qry = "SELECT * FROM databaseY.sometable"; 
} 

如果只關心數據庫連接比我認爲你必須使用1st方法。

相關問題