簡體   English   中英

根據匹配字段,使用來自另一個數據庫的數據更新MySQL數據庫表

[英]Update MySQL database table with data from another database, based on matching field

使用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. 這些數據庫必須位於同一MySQL服務器上。
  2. 您使用的用戶名必須對兩個數據庫以及所有涉及的表都具有適當的訪問權限。

如果這兩個條件都不成立,則需要通過與一個數據庫的連接來檢索程序信息,然后使用其連接來更新另一個數據庫中的表。 有時可能很難。

我相信,在這種情況下,最好的辦法是說服數據庫管理員向用於修改db2的帳戶添加特權,以便它也可以讀取db1 (如果它們不在正常的服務器上,那當然無濟於事。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM