正在为我们的客户制定内部管理系统,以及即将推出的仪式。它由服务器[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 ...”)。
这就是造成很多混乱的原因。
我的问题是:一旦连接到服务器上的数据库,您是否可以访问该服务器上的其他数据库,或者我们是否忽视了某些内容?
任何反馈都非常感谢小伙伴......
答案 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。