Php 如何使用PDO在两个数据库之间运行连接查询

Php 如何使用PDO在两个数据库之间运行连接查询,php,mysql,pdo,Php,Mysql,Pdo,我有两个PDO对象,表示两个数据库pdo1和pdo2,声明如下: try { $pdo1 = new PDO('mysql:host=localhost;dbname=database1', 'user', 'password'); $pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo1->exec('SET NAMES "utf8"'); } try { $sql

我有两个PDO对象,表示两个数据库pdo1和pdo2,声明如下:

try {
    $pdo1 = new PDO('mysql:host=localhost;dbname=database1', 'user', 'password');
    $pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo1->exec('SET NAMES "utf8"');
}
try {
     $sql   = 'SELECT * from table1';
     $result = $pdo1->query($sql);  
}
^我对$pdo2也做了同样的操作,这是对第二个数据库

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

try {
    $pdo1 = new PDO('mysql:host=localhost;dbname=database1', 'user', 'password');
    $pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo1->exec('SET NAMES "utf8"');
}
try {
     $sql   = 'SELECT * from table1';
     $result = $pdo1->query($sql);  
}
现在我想运行一个查询,其中两个表跨两个数据库连接。我如何处理两个pdo对象?下面是我得到的,但我一直在思考如何做$result部分,在这里我放了asterixis:

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 ...

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

您必须能够使用pdo以某种方式连接两个数据库中的两个表,否?您可以,但您必须使用一个pdo对象与一个可以访问两个数据库的用户。可能重复的用户可以访问两个数据库。但是在这种情况下,如何声明PDO对象来表示这两个数据库呢。只需在连接字符串中声明一个,并像在示例中那样使用db前缀。