使用来自其他数据库的数据,根据匹配字段更新MySQL数据库表

时间:2014-06-12 15:57:34

标签: php mysql sql database

使用PHP5,我需要访问两个不同的数据库(在同一台服务器上),但具有不同的登录凭据。然后从一个数据库获取数据并更新另一个数据库以获取与唯一字段值匹配的记录。这就是我到目前为止所拥有的......

$link2->query("UPDATE db2.table2 
    INNER JOIN db1.table1 
        ON db1.table1.email = db2.table3.email 
SET db2.table2.field2 = db1.table1.field1");

我完全迷失的是如何处理这两个数据库有不同连接的事实。我查询哪个连接?如何合并其他数据库的连接?

1 个答案:

答案 0 :(得分:0)

要使用单个查询来命中两个不同的数据库,必须要做两件事:

  1. 这些数据库必须位于同一个MySQL服务器上。
  2. 您使用的用户名必须具有对两个数据库和所有相关表的适当访问权限。
  3. 如果这两个条件不成立,则需要通过与一个数据库的连接来检索程序中的信息,然后使用其连接更新另一个数据库中的表。这有时会很难。

    我认为,在这种情况下,您最好的选择是说服您的数据库管理员为您用来修改db2的帐户添加权限,以便它还可以阅读db1。 (当然,如果它们不在理智的服务器上,那将无济于事。)