我有2个数据库,我需要在查询中从两个数据库进行连接。但是,当你准备声明时,这怎么可能呢?
我有2个数据库连接文件。但是,例如我如何从数据库(pdo)中选择一个表,然后从另一个数据库中的其他表(pdotwo)加入?
private $pdo;
private $pdotwo;
public function __construct(DB $pdo, DBTwo $pdotwo)
{
$this->pdo = $pdo->pdo;
$this->pdotwo = $pdotwo->pdotwo;
}
答案 0 :(得分:3)
这是very similar to an older question on the same topic,请查看是否符合您的需求。
它没有处理Class
结构,而是处理连接的实际情况。
重点是,如果您的数据库位于同一主机上,您不需要准备两个连接,您只需准备一个连接,然后在查询中指定第二个数据库的名称:
$db = new PDO('mysql:host=localhost;dbname=db1;charset=utf8', 'username', 'password');
$result = $db->query("
SELECT *
FROM table_on_db1 a, `db2`.`table_on_db2` b
WHERE a.id = b.fk_id
");