php - 连接多个数据库并在php中跨数据库加入查询

标签 php mysql database

我想使用 php 跨 2 个数据库进行连接查询。

这是我的第一次连接。

$conn = mysql_connect('localhost','root1','pass1'); 
@mysql_select_db('database1',$conn);

这是我的第二个连接。

$conn1 = mysql_connect('localhost','root2','pass2'); 
@mysql_select_db('database2',$conn1);

如果我想从数据库 1 中获取数据,我正在做以下事情。

$sql = 'SELECT * FROM users';

$result = mysql_query($sql, $conn);

print_r(mysql_fetch_array($result));

与第二个数据库2类似

$sql = 'SELECT * FROM orders';

$result = mysql_query($sql, $conn1);

print_r(mysql_fetch_array($result));

但是当我按如下方式进行连接查询时,我遇到了问题

$sql = 'SELECT a.fname AS fname, a.lname AS lname FROM database1.users a JOIN database2.orders b ON b.creator_id = a.id';

$result = mysql_query($sql);//what should be second parameter over here.

print_r(mysql_fetch_array($result));

最佳答案

您可以通过在表名前加上数据库名来完成此操作,就像您在示例中建议的那样。但是登录用户需要在相同的凭据下访问这两个数据库。这最后一部分非常重要,否则你将无法做到。

这为您提供了一个简单而直接的示例:link

取自该链接的示例(仅适用于相同的凭据):

SELECT
    c.customer_name,
    o.order_date
FROM
    db1.tbl_customers c LEFT JOIN
    db2.tbl_orders o ON o.customer_id = c.id

关于php - 连接多个数据库并在php中跨数据库加入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895892/

相关文章:

java - 为 Eclipse 添加 Java 支持

php - 转换为日期格式 dd/mm/yyyy

javascript - 通过从 PHP 传入数组来填充 Java 脚本中的项目及其值的数组

MYSQL 组函数使用无效 如何解决?

sql - 使用查询检测 SQL Server 利用率

mysql - 仅选择数据量较大的 MySQL 数据库中最近更新的行

php - while循环多次显示一条记录php和mysql问题

javascript - 显示最后一个元素后刷新页面

python - 如何随机为 MySQL 列提供种子?

database - TNS :listener does not currently know of SID given in connect descriptor