php mysql连接混乱

时间:2009-07-29 22:10:35

标签: php mysql

早些时候工作中出现了一些混乱。思考id由你运行,看看是否有人知道wats正在进行。

正在为我们的客户制定内部管理系统,以及即将推出的仪式。它由服务器[db_1和db_2]上的两个MySQL数据库和一个PHP前端组成。 [两个数据库都包含几个表格]。

可能有90种不同的PHP文件,其中一些需要连接到我们的数据库,所有这些连接都是通过一个PHP函数完成的,该函数显式连接到上面提到的第一个数据库[db_1]并提供登录名和密码。这很好。

但是,我们的第二个数据库db_2似乎不需要自己的登录名和密码来访问其内容 一旦我们连接到db_1,我们似乎就可以完全访问db_2,只要我们使用表的全名[即:db_2.usersTable] - > (“SELECT * FROM db_2.usersTable WHERE ...”)。

这就是造成很多混乱的原因。

我的问题是:一旦连接到服务器上的数据库,您是否可以访问该服务器上的其他数据库,或者我们是否忽视了某些内容?

任何反馈都非常感谢小伙伴......

3 个答案:

答案 0 :(得分:4)

您通常不会通过特定数据库访问数据库服务器,而是访问一个或多个数据库的用户。

例如:

mysql_connect("localhost", "user", "password") or die(mysql_error());

连接到服务器而不是特定的数据库。

连接到数据库服务器后,您可以访问该用户有权访问的所有数据库。如果有多个数据库不是默认数据库,则只需在查询中指定数据库名称。

mysql_select_db("myTable") or die(mysql_error());

将myTable设置为默认值,但您仍然可以访问用户有权访问的其他表。

答案 1 :(得分:1)

我可能错了,但PHP是否只与用户连接并使用MySQL 服务器进行身份验证?因此,基于该用户的权限,PHP可以选择用户有权访问的任何数据库。我会检查您要连接的用户的权限...

答案 2 :(得分:1)

  

连接到数据库后   服务器,你有权访问其他人   该服务器上的数据库

如果您对其他数据库有权限,那么是。连接时,您将连接到服务器并将默认数据库设置为指定的数据库。这就是为什么在要访问它时必须显式指定db_2的原因,但是您不必指定db_1。