如何 运行 使用 PDO 连接两个数据库的查询
How to run a query with a join accross two databases with 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"');
}
^ 我对第二个数据库的 $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 ...
(您需要访问这两个数据库的权限。)
我有两个 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 对象做到这一点?这就是我所拥有的,但我仍然坚持如何做我放置星号的 $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 ...
(您需要访问这两个数据库的权限。)