在 PHP 中使用多个数据库进行 PDO 连接查询

Posted

技术标签:

【中文标题】在 PHP 中使用多个数据库进行 PDO 连接查询【英文标题】:PDO Join Query with Multple Databases in PHP 【发布时间】:2016-02-01 17:08:36 【问题描述】:

我已经搜索并搜索了有关此问题的答案,但空手而归。我希望有人可以为我指明一个可靠示例的方向。

我开发了一个模块化系统,其中数据存储在多个 mysql 数据库中。

我正在使用 PDO 对象通过 php 连接到数据库。我需要跨两个不同的数据库执行 JOIN 查询,但我的 PDO 对象是为特定数据库初始化的。我尝试使用绝对引用“dbName.tableName.field.Name”,就像使用已弃用的 mysql_query() 函数执行的那样,但没有运气。

是否可以使用 PDO 跨多个数据库执行 JOIN 查询?

用法:我目前有一个员工数据库和一个文档数据库。列出所有文档会返回外键 - StaffID。我需要使用 Staff 表将其转换为 Staff 名称。

【问题讨论】:

【参考方案1】:

您必须确保您拥有可以访问所有数据库的同一用户。

JOIN 必须指定完整的 database.table 名称:

SELECT * FROM database_1.table1 AS d1 LEFT JOIN database_2.table2 AS d2 
ON d1.someIDField = d2.someIDField;

【讨论】:

你明白了!问题在于访问限制以及我自己未能将 WHERE 子句放在 JOIN 之后。谢谢。

以上是关于在 PHP 中使用多个数据库进行 PDO 连接查询的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP PDO 在 SQL 中将多行传递给 UDF

PHP中PDO关闭连接的问题

PHP中PDO关闭连接的问题

PHP数据库查询

使用 PDO 准备语句从搜索字段中使用多个关键字进行 LIKE 查询

PHP/PDO/MySQL:将多个查询转换为单个查询