Php 连接不同数据库中的多个表?MySql

Php 连接不同数据库中的多个表?MySql,php,mysql,database,database-connection,Php,Mysql,Database,Database Connection,嘿,我正在寻找一种好方法,使用php连接mysql中至少两个数据库,并从表中收集每个数据库中的信息 这些表将包含相关信息。我在一个名为“站点”的表中的一个数据库(“站点信息”)中有站点名称。我还在另一个数据库(“sitedescriptions”)中的一个名为“descriptions”的表中包含站点描述 我似乎无法让这两个数据库相互通信。有人知道我如何做上述工作吗?我对php/mysql非常陌生 此外,在“描述”表中,有三行信息与“站点”表中的一个站点相关。是否有可能让这些行只与它相关的一个站

嘿,我正在寻找一种好方法,使用php连接mysql中至少两个数据库,并从表中收集每个数据库中的信息

这些表将包含相关信息。我在一个名为“站点”的表中的一个数据库(“站点信息”)中有站点名称。我还在另一个数据库(“sitedescriptions”)中的一个名为“descriptions”的表中包含站点描述

我似乎无法让这两个数据库相互通信。有人知道我如何做上述工作吗?我对php/mysql非常陌生

此外,在“描述”表中,有三行信息与“站点”表中的一个站点相关。是否有可能让这些行只与它相关的一个站点进行对话


谢谢您的帮助。

我总是使用我的表的全名。因此,如果名为tablea的表位于名为dba的数据库中,我将执行以下查询:

SELECT * FROM dba.tablea 从dba.tablea中选择*
这使您可以非常轻松地切换数据库。如果您不想记住这样做,我还建议您为每个表定义常量,在这个时候您可以将其放入。

一个好的策略可能是定义一个对两个数据库具有相同访问权限的MySQL用户。大概是这样的:

GRANT ALL ON siteinfo.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL ON sitedescriptions.* TO user@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
一旦您作为该用户建立了连接,就可以访问这两个数据库,并且可以通过在表名前面加上数据库名来轻松地引用它们

SELECT * FROM siteinfo.sites;
您甚至可以通过这种方式轻松地跨数据库联接表。因此,要回答第二个问题,要获取站点的所有三个描述行,您可以这样做(假设每个数据库中的站点具有相同的ID,或相同的名称,或您可以加入的唯一内容):

SELECT * FROM
    siteinfo.sites AS s LEFT JOIN 
    sitedescriptions.description AS d ON s.siteId=d.siteId
WHERE s.siteId=123;