【问题标题】:php mysql connection confusionphp mysql 连接混乱
【发布时间】:2009-07-29 22:10:35
【问题描述】:

早些时候在工作中有点混乱。我想由你运行它,看看是否有人知道发生了什么。

正在为我们的客户开发一个内部管理系统,该系统即将启动。它由服务器 [db_1 和 db_2] 上的两个 MySQL 数据库和一个 PHP 前端组成。 [两个数据库都包含多个表]。

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

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

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

我的问题是:一旦您连接到服务器上的数据库,您是否可以访问该服务器上的其他数据库,还是我们忽略了某些东西???

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

【问题讨论】:

    标签: php mysql


    【解决方案1】:

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

    例如:

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

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

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

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

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

    【讨论】:

    • 连接的是mysql服务器,而不是特定的数据库。非常感谢小伙子们,我想我现在明白了! 10/10
    【解决方案2】:

    我可能错了,但 PHP 不只是与用户连接和验证 MySQL 服务器 吗?因此,根据该用户的权限,PHP 可以选择用户有权访问的任何数据库。我会检查您正在连接的用户的权限...

    【讨论】:

      【解决方案3】:

      一旦你连接到一个数据库 服务器,您是否可以访问其他服务器 该服务器上的数据库

      如果您有其他数据库的权限,那么可以。当您连接时,您将连接到服务器并将 default 数据库设置为指定的数据库。这就是为什么当你想访问它时必须显式指定 db_2,但你不必指定 db_1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-04
        • 1970-01-01
        • 2017-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-28
        相关资源
        最近更新 更多