php - 使用不同的用户凭据连接多个数据库中的表

标签 php mysql join

我需要连接来自不同数据库的两个表。
代码将如下所示:

$tbl1 = 'table1';
$tbl2 = 'table2';

$DB1 = 'DB1';
$DB2 = 'DB2';

$connect1 = mysql_connect(DB_SERVER,DB_USER1,DB_PASSWORD1);
mysql_select_db ($DB1, $connect1);

$connect2 = mysql_connect(DB_SERVER,DB_USER2,DB_PASSWORD2);
mysql_select_db ($DB2, $connect2);
/* note both the DB are in the same server and users has privileges to theyr own datadases say usr1 to DB1, usr2 to DB2 */

mysql_query("SELECT * FROM $DB1.$tbl1 AS tb1 LEFT JOIN $DB2.$tbl2 AS tb2 ON tb1.id = tb2.id", $connect1);

上面的查询返回一个错误,指出 table2 不存在,很明显,因为我正在使用 $connect1

救救我吧!!

最佳答案

如果您的两个用户中的每一个只能访问一个数据库而不能访问另一个数据库,则您将无法在一个查询中使用这两个数据库/表 - 因为没有用户能够运行该查询。

您必须:

  • 获取有权访问这两个数据库的用户,因此可以运行此查询,
  • 或者使用有权访问该数据的用户从每个数据库/表中获取数据,然后从 PHP 代码中处理这些数据,合并它们(基本上,进行连接在 PHP 中,而不是在 SQL 中;即使这可能不是最有效的想法)

关于php - 使用不同的用户凭据连接多个数据库中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10646843/

相关文章:

mysql - cakephp 3.4 mySQL 到 orm 转换

php - 为什么不反斜杠每个空格以防止 mysql 注入(inject)

Mysql 与特定表结构中的连接不一致

mysql - 如何从 RDS Mysql 存储过程写入/读取 S3 存储桶文件

php - Sql从两个表中获取数据

sql - ON运算符SQL,它是什么?

php - AJAX/Javascript 上传 PHP 问题

php - 如何在没有 AJAX、Jscript、HTML 隐藏字段或 cookie 的情况下从 JavaScript 变量获取值到 PHP 变量?

PHP:不可变的公共(public)成员字段

php - MySQL连接三张表,如果为空则显示0