2012-09-26 44 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方法。

相关问题