我有两个代表两个数据库的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"');
}
^我为$ pdo2做了同样的事情,这是第二个数据库。
到目前为止,我访问数据库的方式如下:
try {
$sql = 'SELECT * from table1';
$result = $pdo1->query($sql);
}
现在我想运行一个查询,其中两个表连接在两个数据库中。我怎么能用这两个pdo对象做到这一点?这就是我所拥有的,但我仍然坚持如何在我放置asterixis的$ 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对象中提取结果?
答案 0 :(得分:2)
使用一个连接,然后执行类似
的查询SELECT ... FROM db1.tbl1 JOIN db2.tbl2 ...
(您将需要访问这两个数据库的权限。)