【问题标题】:Update MySQL database table with data from another database, based on matching field根据匹配字段,使用来自另一个数据库的数据更新 MySQL 数据库表
【发布时间】:2014-06-13 00:09:34
【问题描述】:

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

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

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

【问题讨论】:

  • 从一个数据库中选择,然后在另一个数据库中插入/更新。你不能同时做这两件事。 (除非您使用相同的连接通过它们进行连接)
  • @Len_D,这不是重复的。该线程正在处理两个不同的服务器。我有两个数据库,同一台服务器。期望的任务也不同。不过谢谢。 :)
  • @Mr Jack,我现在拥有可以访问这两个数据库的凭据。所以...知道这一点,有什么前进的建议吗?
  • 进行选择并将结果放入 1 个变量中,然后使用第二个连接字符串进行插入。

标签: php mysql sql database


【解决方案1】:

要使用单个查询来访问两个不同的数据库,必须满足以下两点:

  1. 这些数据库必须在同一个 MySQL 服务器上。
  2. 您使用的用户名必须对这两个数据库和所有相关表具有适当的访问权限。

如果这两个条件不成立,您需要通过与一个数据库的连接将信息检索到您的程序,然后通过其连接更新另一个数据库中的表。这有时可能很难。

我相信在这种情况下你最好的办法是说服你的数据库管理员为你用来修改db2的帐户添加权限,这样它也可以读取db1。 (当然,如果他们不在正常的服务器上,那将无济于事。)

【讨论】:

  • 所以我现在可以使用相同的凭据访问这两个数据库。那么我将如何修改它以过滤 db1 中的记录列表,更新 db2 中的记录?我开始使用的代码是否存在任何问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
  • 2015-02-01
相关资源
最近更新 更多