繁体   English   中英

如何使用PDO跨两个数据库运行带有联接的查询

[英]How to run a query with a join accross two databases with PDO

我有两个表示两个数据库pdo1和pdo2的PDO对象,它们按照以下说明进行声明:

try {
    $pdo1 = new PDO('mysql:host=localhost;dbname=database1', 'user', 'password');
    $pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo1->exec('SET NAMES "utf8"');
}

^而且,对于第二个数据库,$ pdo2也执行相同的操作。

到目前为止,我访问数据库的方式如下:

try {
     $sql   = 'SELECT * from table1';
     $result = $pdo1->query($sql);  
}

现在,我想运行一个查询,其中两个表跨两个数据库进行联接。 如何使用两个pdo对象执行此操作? 这是我所拥有的,但是我在如何将星号放到$ result部分上陷于困境:

try {
     $sql   = 'SELECT database1.table1.name FROM database1.table1 LEFT JOIN database2.table2
               ON database1.table1.userid = database2.table2.userid';
     $result = $pdo***->query($sql);    
     }

以前,它会引用$ pdo1或$ pdo2,但是如何组合该部分以从组合的pdo对象中提取结果?

使用一个连接,然后执行类似的查询

SELECT ... FROM db1.tbl1 JOIN db2.tbl2 ...

(您将需要访问两个数据库的权限。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM