1个查询中的2个数据库

时间:2011-11-04 20:09:11

标签: php mysql

我有两个eccomerce网站,几乎相同的产品数据库。我想将产品表托管在一个单独的数据库中,供2个ecvomerce站点共享。

我尝试同时连接到2个独立的数据库,但无法使其正常工作。

我使用plesk并且在同一个用户下拥有多个数据库的唯一方法是在服务器上手动设置它,但我无法弄明白。

我理想的数据库设置是......

Site A:
shared_db (products)
db_A (orders, customers, etc...)

Site B:
shared_db (products)
db_B (orders, customers, etc...)

最好的办法是什么?

服务器:PHP 5.3,IIS7,PLESK,godaddy专用服务器。

2 个答案:

答案 0 :(得分:1)

这完全取决于您使用的数据库连接是否可以访问其他数据库。如果是,那么您可以通过以下方式简单地引用其他数据库(跨数据库连接)(以下查询仅用于演示目的,猜测模式):

SELECT products.*, orders.*, customers.* FROM shared_db.products INNER JOIN db_B.orders on orders.product_id = products.id INNER JOIN db_B.customers on customers.id = orders.customer_id WHERE products.id = ?

如果您的数据库连接无权访问其他数据库,则必须发出两个查询并将其合并到应用层。

答案 1 :(得分:0)

您使用的数据库是什么?如果您使用的是MSSQL,则可能需要进入主数据库并启用跨数据库预处理。默认情况下禁用它。您可能还需要在辅助数据库的查询中定义主数据库的完全规定名称。如果您需要进一步说明,请告诉我。